2010-09-22 105 views
4

我想通過一個php變量裏面的JavaScript bt它不工作。是否有可能在JavaScript內部傳遞一個php變量?

<a href="javascript:wait1();getPass('<?php echo $current?>');">Comment</a> 

是否有可能這樣做,否則我可能是不正確的地方......

感謝提前您的答覆! :)

+0

對我來說,當我賦值'<?php $ current =「hai」>> – svk 2010-09-22 06:08:35

+2

在'$ current'之後放置一個';'並且/或者在'$ current'之後放置一個空格:'' <$ php echo $ current; ?>' – vol7ron 2010-09-22 06:12:48

+0

你能否詳細說明「不工作」?什麼是html輸出? – mpen 2010-09-22 06:25:25

回答

1

您正在動態生成Javascript。如果你需要這樣做,你可以節省一些頭痛,保持簡單。從PHP數據可以在頁面的頂部轉移到JavaScript中的最簡單的方法:

<script type="text/javascript" > 
var $current = '<%? echo $current; %>'; 
</script> 

正如其他人所指出的那樣,你將要編碼和引用你的PHP變量,使用json_encode(在這種情況下,你可能不需要引號),或者如果您知道可能的值,則可以使用更簡單的轉義函數。現在

,你的內嵌代碼可以更簡單:

<a href="javascript:wait1();getPass($current);">Comment</a> 

最後一個建議是拉了這一點,爲自己的功能,並使用「點擊」屬性。

2

首先,您可能應該將'java'標記更改爲'javascript'。

關於你的問題 - PHP在服務器端解析,而Javascript在客戶端運行。如果你不打算使用AJAX和異步調用,你可以寫值到JS源,如:

<script type="text/javascript"> 
    var foo = <?php echo $yourData; ?>; 
    alert(foo); 
</script> 
+0

實際上,我使用AJAX ....所以,堅持這個問題。 – 2010-09-22 06:51:57

0

使用json_encode()如果你的PHP有它。
這會自動引用並轉義您的字符串,並確保特殊字符被正確編碼以防止跨站點腳本攻擊(XSS)攻擊。 但是,我認爲你必須將UTF-8字符串傳遞給這個函數。

而且vol7ron好點–你應該把分號;您的發言後,把那和更好的可讀性問號?之間的空間。

<a href="javascript:wait1();getPass(<?php echo json_encode($current); ?>);">Comment</a> 

您也可以通過布爾,整數,甚至整個陣列json_encode()將它們傳遞給JavaScript。

+0

很確定'?'*不會被解釋爲運算符。 – mpen 2010-09-22 06:29:55

+0

謝謝!我無法觀察到我的PHP版本,但不確定。刪除了該部分。 – Archimedix 2010-09-22 06:35:23

2
<a href="javascript:wait1();getPass('<?=$current?>');">Comment</a> 
相關問題