页面加载时的php函数

时间:2013-09-22 10:41:34

标签: php html

我有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或其他东西?

3 个答案:

答案 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 …