私は実際にほぼ2時間検索してきましたが、JSONデータをPHPからJSに渡す方法の良い例をまだ見つけていません。PHPこれは多かれ少なかれこのように見えるJSONスクリプト(擬似コード)をエコーアウトします。
{
"1": [
{"id":"2","type":"1","description":"Foo","options:[
{"opt_id":"1","opt_desc":"Bar"},
{"opt_id":"2","opt_desc":"Lorem"}],
{"id":"3","type":"3","description":"Ipsum","options:[
...
"6":
{"id":"14","type":"1","description":"Test","options:[
...
etc
問題は、JavaScriptでこのデータを取得するにはどうすればよいですか?私の目標は、これらのJSONデータに基づいてポーリングを生成する.jsスクリプトを作成することですが、正直なところ、これを行う方法の例は見つかりません。それは次のようなものだと思います:
Obj jsonData = new Object();
jsonData = $.getJson('url',data,function()){
enter code here
}
良い例などへのリンクをいただければ幸いです。そして、データをPHPでエンコードするのは難しい部分だと思いました...
編集:
このコードスニペットが機能するようになったので、JSでJSONデータ全体を確認できます。しかし、今では内部データにアクセスする方法がわからないようです。ステージ番号(1〜6)は出力されますが、質問データを取得する方法がわかりません。また、各質問内のオプションデータを取得する方法もわかりません。ネストされた各ループを試す必要がありますか?
$(document).ready(function()
{
$('#show-results').click(function()
{
$.post('JSAAN.php', function(data)
{
var pushedData = jQuery.parseJSON(data);
$.each(pushedData, function(i, serverData)
{
alert(i);
})
})
})
});
ここでのアイデアは、中間レベルの質問情報を取得し、質問の説明を印刷してから、質問の種類に基づいて、オプション(存在する場合)をループしてチェックボックス/ラジオボタングループを作成してから、次の質問に進むことです。 。最初の数字は、私が現在取り組んでいる多段階投票のどの段階を表しています。私の計画は、フォームがAjaxを介して送信される最後のページまで、さまざまなdivを非表示/表示することにより、6つの段階に分割することです。
よくわかりませんが、使用できると思います
$.getJSON('url', data, function(jsonData) {
// operate on return data (jsonData)
});
これで、PHP jsonデータにアクセスして操作できるようになりました。getJson呼び出しの外部で使用する場合は、変数に割り当てることができます。
var neededData;
$.getJSON('url', data, function(jsonData) {
neededData = jsonData;
});
JQueryのドキュメントを試してください: http://api.jquery.com/jQuery.getJSON/
この例で始めることができます。
$.getJSON('ajax/test.json', function(data) {
var items = [];
$.each(data, function(key, val) {
items.Push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
});
この例は、JSON構造に基づいています。
{
"one": "Singular sensation",
"two": "Beady little eyes",
"three": "Little birds pitch by my doorstep"
}
PHPではechoを使用しないでください。 JSONではなく文字列を出力します。
json_encode を使用してJSONをjavascriptに渡します。
each を使用して、JavaScriptの最後でJSONの値を取得できます。
例
http://www.darian-brown.com/pass-a-php-array-to-javascript-as-json-using-ajax-and-json_encode/
JQueryを使用している場合は、次のように、アプローチに対する非常に簡単な解決策があります: http://api.jquery.com/jQuery.getJSON/ 。
それ以外の場合は、上記のコードで試したように、JavaScriptでJSONに直接アクセスする方法はないことを説明してください。重要な点は、JavaScriptはブラウザで実行され、PHPスクリプトはサーバーで実行されます。したがって、それらの間には確実に通信が必要です。したがって、サーバーからデータを要求する必要があります。 http私が提案します。
HTH