簡體   English   中英

通過jQuery-AJAX load()函數將PHP變量作為變量傳遞給JavaScript

[英]Passing PHP variables to JavaScript as variable through jQuery-AJAX load() function

我有2個文件, main.htmlsearch.php

main.html頁面中,有這段代碼:

$("#results").load("search.php",queryString,function(response,status,xhr){
... some code here
})

search.php頁面中,有這段代碼:

$image_id=mysql_insert_id() // getting the last ID of the last query - works perfectly

我想要做的是將此變量回顯到main.html文件並將其存儲在一個名為im_id的JS變量中,我可以通過main.html頁面調用它。

我試着這樣做

echo "<script type=\"text/javascript\">$im_id=".mysql_insert_id()."</script>";

但它根本不起作用。

我找到了一種解決方法,即將內容存儲在像這樣的文本框中

echo "<script type=\"text/javascript\">$(\"#textbox\").val(".$image_id.")</script>";

然后在JScript中使用

$im_id=$("#textbox").val();

以及使用“中介”的許多其他方法但是沒有直接設置變量的方法嗎?

任何幫助,將不勝感激。

由於輸出$im_id=1 ,它不起作用,你應該輸出var im_id = 1; 代替。

在你的PHP中:

echo "<script type=\"text/javascript\">var im_id = ".mysql_insert_id().";</script>";

如果它仍然無法工作,請查看生成的代碼,而不是PHP源代碼。 只需在瀏覽器中查看源代碼,然后使用調試器找出錯誤的信息。

它不起作用的原因是php用雙引號內的變量替換變量的值。 這樣可以輕松模板化。 有關更多信息,請參閱php文檔的變量解析部分

 <?php $juice = "apple"; echo "He drank some $juice juice.".PHP_EOL; // Invalid. "s" is a valid character for a variable name, but the variable is $juice. echo "He drank some juice made of $juices."; ?> 

上面的例子將輸出:

 He drank some apple juice. He drank some juice made of . 

如果您想在javascript中以$開頭的變量名稱,請將雙引號替換為單引號:

echo '<script type=\"text/javascript\">$im_id='.mysql_insert_id().'</script>';

或者,不要在變量名中使用$:

echo "<script type=\"text/javascript\">im_id=".mysql_insert_id()."</script>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM