2011-06-01 30 views
0

我正在绘制一个完整的空白为什么这不起作用。我可以通过一个变量来传递,但不是两个。当我使用像getnt(1,2)这样的实际数字时,它可以工作。这只是与两个PHP变量无关。Javascript函数接受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命令。

+1

你查看源代码吗?对我来说看起来很好....虽然我会在PHP中生成整个URL并将其放入'href'中。 – mpen 2011-06-01 02:02:57

+0

您需要设置演示页面,以便我们可以看到生成的代码。但我同意马克,看起来没问题。 – 2011-06-01 02:05:13

+0

检查生成的代码。 '$ nid'和'$ pnid'包含什么? – 2011-06-01 02:05:17

回答

2

如果ID和PNID是字符串,像这样括号括起来。

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

如果仍然没有工作,你可以在浏览器中调试代码

  1. 查看源代码, 确保它产生正确。
  2. 在 javascript函数中放置一些警报消息。安装Firebug 如果您有Firefox或看到

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

+0

谢谢你的工作,我现在看到,当使用onclick时,我需要在echo中使用onclick = \“.. whatever .. \”,但如果没有,它会导致问题。 – yanike 2011-06-01 02:54:20

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

这当然更好,但在这种情况下不应有所作为。 – 2011-06-01 02:08:14

+0

@Felix:由于没有完全可靠的方法来处理事情,并且当某些事情应该是真实的时候,我们需要考虑处理它的不同方式和方法,即使它们看起来很傻。请注意,本网站旨在提供所有可能的问题。你有没有经历过一个愚蠢的问题?听起来很愚蠢的答案可以解决它。再次向上投票(: – 2011-06-01 02:49:08

+0

@Being:我完全同意你的观点,FWIW,我没有投票,我只是想指出这个代码和OP代码之间的输出没有区别,所以尽管它更好,没有解决问题... – 2011-06-01 08:12:38

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>