Javascript函数接受PHP变量

时间:2011-06-01 02:00:52

标签: php javascript function variables

我正在弄清楚为什么这不起作用。我可以通过一个变量通过,但不是两个。当我使用像getnt(1,2)这样的实际数字时,它可以工作。它只是不使用两个PHP变量。

  <script type="text/javascript">
  function getnt(nid,pnid) {
      window.location = "nt.php?nid=" + nid + "&pnid=" + pnid;
  }
  </script>
  <body>  
  <?php
    echo "<a href='#' onclick='getnt($nid,$pnid)'>VIEW</a>";
  ?>
  </body>

我可以使代码与echo "<a href='nt.php?nid=$nid&pnid=$pnid'>VIEW</a>";一起使用,但如果我想添加警报和javascript命令,那就不好了。

3 个答案:

答案 0 :(得分:2)

你总是可以尝试:

<script type="text/javascript">
    function getnt(nid,pnid) {
        window.location = "nt.php?nid=" + nid + "&pnid=" + pnid;
    }
</script>
<body>  
    <a href="#" onclick="getnt(<?php echo $nid; ?>,<?php echo $pnid; ?>)">VIEW</a>
</body>

答案 1 :(得分:2)

如果ID和pnID是字符串,请用这样的括号括起来。

<body>  
  <?php
    echo "<a href='#' onclick=\"getnt('$nid','$pnid')\">VIEW</a>";
  ?>
  </body>

如果仍然无效,您可以调试代码

  1. 在浏览器中查看源代码, 确保它正确生成。
  2. 在中添加一些警报消息 javascript函数。安装Firebug 如果你有Firefox或看到

  3. Javaascript控制台,如果您收到任何javascript错误。

答案 2 :(得分:0)

通过查看呈现的HTML源代码,您的问题可能得到最好的解答。

无论如何,这是我如何使用优雅降级来实现它

<script type="text/javascript">
function getnt(element) {
    var href = element.href;
    var nid = element.getAttribute("data-nid");
    var pnid = element.getAttribute("data-pnid");
    return true;
}
</script>
<p><a href="nt.php?nid=<?php echo $nid ?>&amp;pnid=<?php echo $pnid ?>"
      data-nid="<?php echo $nid ?>"
      data-pnid="<?php echo $pnid ?>"
      onclick="return getnt(this)">VIEW</a></p>