2011-06-01 65 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>