0

フォーム送信からデータを取得しようとしています。これがコードです。

function codeSubmission() {
$("#questionCodeForm").submit(function() {
    $.post("SubmitCode.php", $("#questionCodeForm").serialize()).done(function(data) {
        var questionName = data.questionName,
            options = data.options,
            pollingStatus = data.pollingStatus,
            codeExist = data.codeExist;

        alert(data);
        alert(data[1])
        alert(questionName);
        alert(options);

        if(codeExist == true) {
            $("#quizTitle").text("questionName");

            for(rowNum=1;rowNum<=5;rowNum++) {
                $("#checkbox-"+rowNum).val("Answer1");
                $("#checkbox"+rowNum+"label").text("Answer"+rowNum);
            } 

            $("#answerForm").slideDown(500);
        } else if(codeExist == false) {
            alert("This quiz code is invalid");
        }   
    });
    return false;   
});
return false;
}

ここで問題となるのは、必要な変数にデータを取得できないことです。さらに、データは配列ではなく文字列として送信されていると思います。デバッグ用のalert(data)の出力は次のとおりです

{"questionName": "Test"、 "pollingStatus": "0"、 "options":{"1": "Test7"、 "2": "Test8"、 "3": "Test9"、 "4": "Test10"、 "5": "Test11"}、 "codeExist":true}

これで、jsonencodeからの上記の出力は正しいようです。ただし、ここで問題を確認するには、data[0]の出力があります。

{{

したがって、jsonencodeは文字列として返されていると思います。私ができるようにしたいのは、questionNameのようなデータにアクセスすることです。どうすればよいですか?できれば助けてください。

4

2 に答える 2

1

「json」データ型を使用するように jQuery に指示できます。

$.post('url', postData, function(returnData) {
  alert(returnData.question);
}, 'json');

ドキュメントを参照してください。

于 2013-02-26T20:00:12.883 に答える
0

OhGodWhy が上に投稿したように、クライアント側でも json を解析する必要があります。これを使用して行うことができます

obj = jQuery.parseJSON(データ);

于 2013-02-28T19:07:28.327 に答える