0

resultTXT に何も表示できないという私のコードの何が問題になっていますか

txtfld は配列を示します

[{
    "user_id": "2790",
    "freelancer_name": "",
    "order_id": "9121",
    "orderamount": "0.00",
    "payment_method": " ....... "
}]

ユーザーIDをresultTXTに入れたい

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        $.post('userfind.php', function(data) {
            $("#txtfld").val(data);

            var json = data,
            obj = JSON.parse(json);
            alert(""+obj.user_id);
            $("#resultTXT").val(obj.user_id);
        },'json');
    }
};
ajaxRequest.open("POST", "userfind.php", true);
ajaxRequest.send(null); 

何を変更する必要があるか教えてください。

4

2 に答える 2

3

これにはいくつか問題があります。まず、なぜ POST をuserfind.php2 回行うのですか? なぜバニラ JS AJAX と jQuery AJAX を使用しているのですか? 1つだけ使用してください。

次に、,'json'in$.postは、jQuery が JSON を解析することを意味します。必要はありませんJSON.parse

user_id第 3 に、JSON は (オブジェクトの) 配列であるため、最初に配列要素を取得し、次にプロパティを取得する必要があります。

$.post('userfind.php', function(data) {
    $("#txtfld").val(data);  // data is an object,
                             // so this will just put [object Object] in the field,
                             // probably not what you want

    alert(data[0].user_id);  // data is an array of (one) object(s)
    $("#resultTXT").val(data[0].user_id);
},'json');
于 2012-07-17T14:30:18.610 に答える
0

jsonが配列だからだと思うので試してみてくださいobj[0].user_id

于 2012-07-17T14:25:34.893 に答える