1

我有 2 个文件,main.html并且search.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文件中,并将其存储在一个名为的 JS 变量im_id中,我可以通过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();

以及许多其他使用“中介”的方法,但没有直接设置变量的直接方法吗?

任何帮助,将不胜感激。

4

2 回答 2

3

它不工作,因为你输出$im_id=1,你应该输出var im_id = 1;

在您的 PHP 中:

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

如果它仍然不起作用,请查看生成的代码,而不是 PHP 源代码。只需在浏览器中查看源代码,然后使用调试器找出问题所在。

于 2012-06-27T12:21:12.857 回答
1

它不起作用的原因是 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>";
于 2012-06-27T12:24:59.873 回答