変数にPHPでassoc配列を埋め込む

私は変数をPHPで配列を塗りつぶししようとしているが、それは全く機能していない。私はJSONとJavascriptを使用しています..

とにかく、ここにJavascriptが呼び出すPHPコードがあります。

<?php

$username = $_POST['username'];

    $json = '{
    "userdata": [
        {
            "first":"$username"
        },
        {
            "first":"Lester"
        },
        {
            "first":"Mannix"
        }
    ]
}';
echo $json;

?>

さて、問題は、私がJavascriptに戻すのは、変数の値ではなくプレーンテキストの "$ username"です。

前もって感謝します。

1
$ usernameは変数として認識されていません。 "first"を使用してください: "'。$ username。'"
追加された 著者 Leysam Rosario,
json_encode()の使用を検討してください。私は>それを必要としない
追加された 著者 Alexander,

3 答え

json_encode を使用してください。

$json = array('userdata' => array(
  array('first'=>'foo'),
  array('first'=>'bar'),
  array('first'=>'bof')
));

echo json_encode($json);

出力

{"userdata":[{"first":"foo"},{"first":"bar"},{"first":"bof"}]}
0
追加された
あなたはなぜコードが動作していないのかを忘れてしまった。
追加された 著者 Martin.,

これはJSON配列を作成する間違った方法です

$json = array(
            "userdata" => array(
                   array("first" => $_POST['username']),
                   array("first" => "Lester"),
                   array("first" => "Mannix"),
             )
         );
echo json_encode($json);
0
追加された

Variables aren't recognized in single quotes [doc]

二重引用符やheredocの構文とは異なり、特殊文字の変数やエスケープシーケンスは、単一引用符で囲まれた文字列に含まれている場合は展開されません。

$json = '{
    "userdata": [
        {
            "first":"'.$username.'"
        },
        {
            "first":"Lester"
        },
        {
            "first":"Mannix"
        }
    ]
}';
0
追加された
-1、 json_encode を使わずにPHPでjsonを作成しません。
追加された 著者 maček,
@macek:私はOPからエラーを修正しました。 json_encodeの要件は(PHP 5> = 5.2.0、PECL json> = 1.2.0)です。
追加された 著者 Martin.,
@Martin:PHPの下位バージョンでjson_encodeを使うことができます。 pear.php.net/package/ Services_JSON
追加された 著者 Leysam Rosario,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com

JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript