2013-09-26 58 views
0

我有一個config.php文件,我定義了幾個變量。如何將變量從php傳遞給jQuery

我想在jQuery腳本中使用其中的一些變量。

我創建了包含以下內容的報頭js.php文件:

<script type="text/javascript"> 
jQuery("#msgid1").html("Hello world."); 
jQuery("#msgid1").html("Hello world again."); 
global_cookie_prefix = <?php echo(global_cookie_prefix);?>; 
</script> 

當我運行的msgid1格上面顯示「你好再次的世界。」

當我換行到:

<script type="text/javascript"> 
jQuery("#msgid1").html("Hello world."); 
global_cookie_prefix = <?php echo(global_cookie_prefix);?>; 
jQuery("#msgid1").html("Hello world again."); 
</script> 

的msgid1 DIV顯示的 「Hello world」。

看來我定義的global_cookie_prefix行導致腳本中止。

我不知道如何解決這個問題。

Thaks。

+1

檢查您的控制檯。什麼是錯誤? – tymeJV

+1

加載頁面後,它在源代碼中顯示的內容是什麼? – aynber

+0

你不需要'var global_cookie_prefix = <?php echo(global_cookie_prefix);?>;'var'丟失了哪裏? – MahanGM

回答

5

我d打賭問題是您沒有使用var關鍵字定義您的變量,和/或您的PHP片段不在引號之間。試試這個

var global_cookie_prefix = '<?php echo global_cookie_prefix; ?>'; 
^^^      ^        ^
+0

「var」前綴沒有解決問題。然而引號卻是。謝謝。 – jdias

1

當你想將變量傳遞給JS爲字符串,你需要告訴JS它的字符串:global_cookie_prefix = '<?php echo global_cookie_prefix;?>';(假設global_cookie_prefix是一個常數,在這種情況下,它應該是所有約定俗成地用大寫)

0

你確定global_cookie_prefix是一個常量(因爲它不是大寫)。如果不是定義的常量,可以嘗試將變量符號'$'添加到global_cookie_prefix。

<?php echo($global_cookie_prefix);?>; 

你也需要引號在你的javascript ...(嘗試有和沒有$取決於常量或不)按常規btw常量是大寫。

global_cookie_prefix = "<?php echo global_cookie_prefix; ?>"; 
+0

是的。它是一個在config.php中定義的常量。我可以回顯它並確認該值是否正確加載。謝謝 – jdias

0

因爲你的腳本實際上是一個PHP腳本輸出的Javascript,您的腳本可能會在錯誤被終止,因爲global_cookie_prefix是一個未定義的常量。如果global_cookie_prefix是一個變量,並且在包含此腳本的頁面上的其他地方定義了它,則可以通過添加「$」符號將代碼更新爲以下代碼。

您還需要JS中的'var'關鍵字來避免嚴格模式下的錯誤。

<script type="text/javascript"> 
    jQuery("#msgid1").html("Hello world."); 
    **var** global_cookie_prefix = '<?php echo(**$**global_cookie_prefix);?>'; 
    jQuery("#msgid1").html("Hello world again."); 
</script> 

我也建議檢查Apache的錯誤日誌看到錯誤是什麼,並確認你的PHP輸出沒有打破這一行。另外,如果你有error_reporting,PHP生成的關於global_cookie_prefix的警告是未定義的,肯定會破壞你的javascript,並使它在那個時候失敗。

如果您粘貼了更多代碼以提供此代碼段上下文,它會更容易幫助您。

編輯:我添加了單引號周圍的PHP輸出,因爲從PHP的字符串輸出將打破你的JavaScript。