2016-10-09 10 views
0

私はphpからJSに値を返すためにjsonを使用することに関するいくつかのガイドを読んできました。しかし、私は少し問題に遭遇しました。検索」に(json_encodeは未定義として返します

$('#some_trigger').on('change', function(){ 
    $.post("retrieve.data.php", { 
      id: 1 
     }, function (data) { 
      var values = data; 

      alert(values[name]); 
    }); 
}); 

そして、受信側で次のような、(それは何か他のもののために使われている、「1 ID」と気を取ら得ることはありません)今、私はjqueryの機能を持っています.data.php ')、私が持っている:

$arr_assoc_template = array(
"name" => "aName", 
"id" => "anId" 
); 

echo json_encode($arr_assoc_template, JSON_PRETTY_PRINT); 

ただし、コンソールと警告ウィンドウは未定義として、[名前]をロギングを保持します。私は何が欠けていますか? :(

+0

代わりに –

+0

に適切なコンテンツタイプヘッダーを設定してください – charlietfl

答えて

1

使用JSON.parse、JavascriptのオブジェクトにJSONテキストの文字列になります。

var values = $.parseJSON(data); 

console.log(values.name); 
+0

私はすでにそれを試していたと私は誓っていたでしょう。 – quickquestion

-1

あなたはvalues["name"]nameの周りに二重引用符が欠落しているそれとも、values.nameを使用することができます。最初のオプションは、より良い練習です。

+0

値["名前"]は変換するのではなく、ストリングスのジョソン。運が良かった –

+0

は一重引用符でもかまいません。引用符の型はここには関係ありません。また、* "より良い実践" *は非常に主観的であり、より一般的なアプローチではありません – charlietfl

+0

タイプのqoutesは無関係ですが、jsonを文字列に変換することは余分なオーバーヘッドです。 –

関連する問題