2011-01-29 36 views
2

有一個關於PHP回顯腳本的問題,它有一個鏈接到一個JavaScript與一些變量。我需要知道回顯的格式,以便它能正常工作。任何人都可以解釋這一點嗎?我的代碼下面貼Php回顯與變量的JavaScript

echo "<a href='javascript: toggle('variable1', 'variable2')'><label1 for='nameEditor'>Manage</label1></a>"; 

現在,當你將鼠標懸停在鏈接它只是顯示的javascript:切換(現在我已經嘗試了許多東西,我仍然無法得到它的工作任何人有任何建議

回答

4

假設variable1variable2是您要插入JavaScript中的PHP位,然後

echo "<a href='javascript: toggle('$variable1', '$variable2')'><label1 for='nameEditor'>Manage</label1></a>"; 

但是,要知道,如果只將這些變量包含的JavaScript元字符,如單引號,你會用語法錯誤來破壞腳本(將其視爲與SQL注入相同的情況)。

可以肯定的是,變量的內容成爲合法的JavaScript,你想要做的事,如:

<script type="text/javascript"> 
    var variable1 = <?php echo json_encode($variable1); ?>; 
    var variable2 = <?php echo json_encode($variable2); ?> 
</script> 

<a href="javascript:toggle(variable1, variable2)...">...</a> 
0

?嘗試這樣的:

echo "<a href=\"javascript: toggle('variable1', 'variable2')\"><label1 for='nameEditor'>Manage</label1></a>"; 

你要逃避\報價

+0

不應該有`後javascript中的空間:toggle`。 – stealthyninja 2011-01-29 23:50:01

0

這是因爲你的混合報價,該瀏覽器中看到這樣做:

echo "<a href=\"javascript: toggle('variable1', 'variable2')\"><label1 for='nameEditor'>Manage</label1></a>"; 

如果你使用雙引號(\「),你會沒事的。瀏覽器本身會看到''''(所有單引號),所以你需要在你的html元素屬性中保留「''」(double,single,single,double),而不管PHP(除了轉義)。