用php中的jquery禁用链接

时间:2014-02-28 05:57:12

标签: php jquery

我一直在尝试禁用某些以某种方式链接到数据库的链接,但我只需根据$_SESSION[]

禁用它们
echo '<script language="javascript">';
echo '$("a").removeAttr("href");';
echo "$('a').click(function(event){
    event.preventDefault();
    alert('No tiene permisos para ingresar');
});";
echo "</script>";

这些是我尝试过的一些,但链接仍然有效。

4 个答案:

答案 0 :(得分:1)

您缺少就绪功能:

$(document).ready(function() {
  // put your code here.
});

在DOM完全加载之前,大多数JQuery函数都不起作用。

答案 1 :(得分:0)

首先,尝试将此代码用作纯JavaScript并使其正常工作(无PHP)只需获取要禁用的链接。像这样......应该有用。

<script language="javascript">
    function disableLinks(){
        $('a').removeAttr('href');
        $('a').click(function(event){
            event.preventDefault();
            alert('No tiene permisos para ingresar');
        });
    }

    //trigger the function after the DOM is ready (possible problem)
    $(document).ready(disableLinks);
</script>

如果不起作用,请在chrome上使用Javascript控制台并查找错误。确保加载jQuery。您之前的代码有可能在页面加载之前尝试禁用链接。 document.ready确保首先加载DOM。

如果这样可以添加PHP。我建议让php部分像这样简单。用这个替换脚本块的最后一行。

<?php
    if($_SESSION['whatever']=='whatever'){
        echo('$(document).ready(disableLinks);');
    }
?>

这可以做得更清洁,但这应该让你去。

作为最后一点,请务必在后端强制执行此操作,因为这很容易被绕过,如果这是阻止访问的唯一方法,则不安全。

答案 2 :(得分:0)

使用$ .bind和$ .unbind

$( "a" ).bind( "click", function() {
         alert( "The quick brown fox jumps over the lazy dog." );
 });

并在会话中检查使用unbind

$( "a" ).unbind( "click" );

答案 3 :(得分:0)

您需要用

附上您的jquery代码
$(document).ready(function()
{
  });

您可以在此链接http://jsfiddle.net/2B75J/

中查看结果