繁体   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