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_idmain.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 に答える