したがって、JS に正常に渡されたこの JSON 構造があります。
{
"StepOne": [
{
"id": "2",
"type": "1",
"description": "How are you feeling?",
"options": [
{
"opt_id": "1",
"opt_desc": "Good"
},
{
"opt_id": "2",
"opt_desc": "Perfect"
},
.... etc
これは PageFive まで続き、質問の数は各ステップで 1 から 4 まで変化し、選択肢は質問ごとに null から約 10 まで変化します。この情報を使用して Javascript で複数ステップのフォームを生成したいのですが、内部データにアクセスする方法がわかりません。「PageOne」、「PageTwo」などしか見つかりません。次のコードを使用してそれを実行しています。
$(document).ready(function()
{
$('#show-results').click(function()
{
$.post('json.php', function(data)
{
var pushedData = jQuery.parseJSON(data);
$.each(pushedData, function(i, serverData)
{
alert(i);
})
})
})
});
今、私はこれらの関数を試して内部の値を取得しました:
var desc = pushedData.PageOne.description;
var desc = pushedData['PageOne']['Description'];
そして、各ループ内で次のようなものを試しました
var desc = PageOne.description;
var desc = PageOne['description'];
それはすべて未定義として出てきます。ページを反復するために行ったのと同じ方法で、各ページの各質問を反復する方法はありますか? そこからすすぎ、繰り返し、各質問のオプションを繰り返しますか? 各レベルにアクセスできれば、ここでの最終的な目標である投票を動的に生成する準備が整っているはずです。
このコードは何かに関係していると思います(投稿した直後にわかりました)。しかし、完全には機能していません。
$(document).ready(function()
{
$('#show-results').click(function()
{
$.post('JSAAN.php', function(data)
{
var pushedData = jQuery.parseJSON(data);
$.each(pushedData, function(i, stepData)
{
$.each(stepData, function(j, questionData)
{
// Print question here
$.each(questionData, function(k, optionData)
{
// Print option here
})
})
})
})
})
});