1

他の同様の例にもかかわらず、私はこの各ループを機能させて選択リストを作成することはできません...しかし、私は本当に近いです!

私の以前の質問によると、部分的に回答された別の質問に基づいて、PHP スクリプトを使用して json 配列を返しています。スクリプト getStudyNames.php は、次の json 配列を返します。

[{"studyindex":"1","studyname":"ADHD"},{"studyindex":"24","studyname":"ADHD_RD"},{"studyindex":"20","studyname":"AFL"},{"studyindex":"42","studyname":"AFRICANERS"},{"studyindex":"2","studyname":"AHD"},{"studyindex":"22","studyname":"AJS"},{"studyindex":"3","studyname":"ASA-FS"},{"studyindex":"4","studyname":"ASIAN"},{"studyindex":"5","studyname":"AUS TWINS"},...]

ただし、この配列を解析して選択リストに追加する方法について、正しい構文を取得することはできないようです。

これを試みる私のコードは次のとおりです。

$.ajax({                                      
      url: 'getStudyNames.php',        //the script to call to get data          
      data: "",                        //you can insert url argumnets here to pass to api.php
                                       //for example "id=5&parent=6"
      dataType: 'json',                //data format
      error: function() {
        alert('Refresh of study names failed.');
      },
      success: function(data)          //on receipt of reply
      { 
        var $studylist = $('#studylist').empty();
        $data.each(data, function(i, record) {
          $studylist.append('<option value='.record.studyindex.'>'.html(record.studyname) );
        })
       } 
    });

上記の出力によると、getStudyNames.php が機能することはわかっています。しかし、なぜこのスタディリストが機能しないのかは、私にはまだ謎です...助けていただければ幸いです!

4

3 に答える 3

2

付録にいくつかのタイプミスがあるようです。ピリオドは、javascript(PHP)、および記号となるjavascriptでは集中に使用されていません+

最初に要素を作成してみてください。何が起こっているのかを簡単に確認してから、追加してください。

$.each(data, function(i, record) {
  var elem = $('<option />', {value: record.studyindex, html: record.studyname});
  $studylist.append(elem);
});
于 2012-12-11T21:44:35.340 に答える
1

$data.each(data, function)

する必要があります

$.each(data, function)

.html()間違ってネストされています.append()

あなたはあなたの<option>

'<option value='.record.studyindex.'>'

する必要があります

'<option value=' + record.studyindex + '>'

于 2012-12-11T21:51:36.800 に答える
1

に以下を入れてみてくださいsuccess

var $studylist = $('#studylist').empty();
$.each(data, function(i, record) {
   $studylist.append($("<option/>", {
        value: record.studyindex,
        text: record.studyname
    }));
});
于 2012-12-11T21:52:23.093 に答える