0

jsonオブジェクトから値を取得できません。firebugから観察すると、jsonデータは次のようになります。

[{"PROJECT_ID":"CASEENO"},{"PROJECT_ID":"DARKROOM-2"}]

これは私のajaxコードです:

$.ajax({
    type: "POST",
    url: "getdata.php",
    dataType: "json",
    data: { 'dataString': projectid }, cache:false,
    success: function(data)
             { 
                  alert(data);
                  for (var i = 0; i < data.length; i++)
                  {             
                     $("#projid").append("<option value=data[i].PROJECT_ID>data                  [i].PROJECT_ID</option>");
                   }   
             }
}); 

alert(data)は[オブジェクトオブジェクト]を提供しています。このように試しましdata.PROJECT_ID, data[PROJECT_ID],data[i].PROJECT_IDたが、プロジェクトIDの値がselectタグに表示されません。forループからプロジェクトIDを取得するにはどうすればよいですか?

4

2 に答える 2

1

alert(data)を与える場合[object Object]dataは配列ではありません。を出力する必要があります[object Object],[object Object]

console.log(data)実際に何であるかをよりよく理解dataし、その構造を調べるために使用することをお勧めします。この質問も役立つかもしれません:オブジェクト、配列、またはJSONにアクセス/処理(ネスト)します

が実際に配列であると仮定するとdata、HTML文字列でその値を使用するには、文字列連結を使用する必要があります。

$('#projid').append('<option value="' + data[i].PROJECT_ID  + '">' + data[i].PROJECT_ID + '</option>');

または、別の方法で要素を作成します。

$('<option />', {
    value: data[i].PROJECT_ID,
    text: data[i].PROJECT_ID
}).appendTo('#projid');

JavaScriptは、PHPのように文字列を補間していません

于 2012-08-31T09:33:49.133 に答える
1

ステートメントを次のように変更します

 $("#projid").append("<option value=data[i].PROJECT_ID>data[i].PROJECT_ID</option>");

$("#projid").append("<option value="+data[i].PROJECT_ID+">"+data[i].PROJECT_ID+"</option>");
于 2012-08-31T09:34:35.573 に答える