我有2个功能使菜单链接处于活动/不活动状态:
function disableCtrl() {
echo 'style="background: #999999;" onclick="return false;"';
}
function enableCtrl() {
echo ' ';
}
我正在使用它们:
<li><a href="#" <?php if (@$_POST['submit']){disableCtrl();} if (@$_GET['guest'] == "add") {enableCtrl();} ?> >MenuButton</a></span></li>
我唯一的问题是默认情况下必须禁用菜单链接(加载页面时)。
当我尝试编写<?php disableCtrl(); if (@$_POST['submit'])...
时,该按钮变为永久禁用。
有没有办法让它工作,可能使用JavaScript或其他东西?
答案 0 :(得分:0)
如果您想要改变某些页面的每个负载,请使用服务器端技术,例如php。如果您希望它在一个页面加载内变化,即I.e。响应用户交互,使用客户端技术I.e.的JavaScript。
要尝试回答原始问题,或者至少给你一些指示,你想要的东西有点像:
<ul id="menu" style="display: none;"><li><a href="">...</a></li>...</ul>
<a id="btn" href="#">disable menu</a>
<script>
document.getElementById('btn').addEventListener('click', function() {
document.getElementById('menu').setAttribute('style', 'display: block');
}
</script>
这并不完美(在实践中,一方面,你不想只指向你的链接“#”,因为对于那些禁用javascript的人来说这不会做任何事情)但它是一个指向正确方向的指针。 jQuery等价物将是:
<script>
$('#btn').click(function() { $('#menu').hide(); });</script>
</script>
如果那更有吸引力,请查看jQuery。
答案 1 :(得分:0)
你需要将'guest'检查和默认(禁用)模式放在一起。
<li><a href="#" <?php if ($_GET['guest']== "add"){enableCtrl();} else {disableCtrl();} ?>>MenuButton</a></li>
或者有一个ternairy(= if if / else-&gt; [condition?ifTrue:ifFalse])
<li><a href="#" <?php $_GET['guest']=="add" ? enableCtrl() : disableCtrl() ?>>MenuButton</a></li>
结合残疾人(针对这种情况而定):
<li><a href="#" <?=($_GET['guest']=="add" ? 'disabled="disabled"' : '')?>>MenuButton</a></li>
答案 2 :(得分:0)
请记住,php是服务器端,因此您可以使用printf将javascript放入页面。
printf("<script>Here is my javascript code</script>");
我使用地图服务做了很多。 例如,从数据库中读取位置并制作标记:
public function MarkerGoogle($s)
{
$str = sprintf("\r\n var amkr%d = new google.maps.Marker();\r\n", $s);
// More php code here …