1

JSON を使用してページ間で情報をやり取りし始めたばかりですが、これを理解することはできません。

基本的に、jquery getJSON を使用して別のページから JSON データを取得する 1 つのページがあります。しかし、PHP 変数は必要なコンテンツに置き換えられません/置き換えられません。

これがjqueryスクリプトです(これはうまく機能していると思います)

$.getJSON("./menu-controller.php", { editId: getEditId, getEditInfo: true },function(data) {
    console.log(data);
    var id = data.itemId;
    alert(id);
});

他のページでこのコードを使用すると、問題なく動作するようになります

$json = '{ "itemId":"4" }';
echo $json;

ただし、これを使用すると機能しません

$menuId = 4;
$json = '{ "itemId":$menuId }';
echo $json;

だから私の質問は、どうすれば $menuId を実際に番号に置き換えて、他のページに正しく戻すことができますか?

私は引用符をいじって、引用符を4時間再配置しようとしました. エラーが発生するか、 $menuId が実際の番号に置き換えられません。

4

4 に答える 4

1

参考までに、PHP 変数は二重引用符でのみ補間され、単一引用符では補間されません。したがって、次のようにする必要があります。

    $json = "{ \"itemId\":$menuId }";
    echo $json;

こちらのデモンストレーションをご覧ください: http://codepad.viper-7.com/CDC0oM

于 2013-10-27T07:32:22.803 に答える
1

このサンプルでは:

$menuId = 4;
$json = '{ "itemId":$menuId }';
echo $json;

JSON 文字列を一重引用符で囲みました。PHP は値を二重引用符で囲んで置換するため、値はここでは置換されず、エコーする値は次のとおりです。

{ "itemId":$menuid }  - this is not valid JSON.

PHP 配列を作成し、それを使用json_encode()して SON 文字列を作成する方がよいでしょう。

echo json_encode(array("itemId"=>$menuId));
于 2013-10-27T07:36:36.157 に答える
0

問題は、PHP 変数を (二重引用符ではなく) 一重引用符で囲んでいるため、PHP が置換する変数の文字列を調べていないことです。

したがって、これは機能するはずです:

$json = "{ \"itemId\": $menuId}";

Cezary Wojcik によって提案された json_encode メソッドと同様に (データがより複雑になると、より柔軟になります!)。

于 2013-10-27T07:32:27.310 に答える