2

私はそのようなjsonを持っています:

[
{
    "MOD_AXL": 0,
    "MOD_CDS_ID": 110000168,
    "MOD_CV": 0,
    "MOD_CV_CTM": null,
    "MOD_ID": 168,
    "MOD_MFA_ID": 514,
    "MOD_PC": 1,
    "MOD_PCON_END": 199007,
    "MOD_PCON_START": 196303,
    "MOD_PC_CTM": null,
    "Name": "2 CV"},
{
    "MOD_AXL": 0,
    "MOD_CDS_ID": 110004500,
    "MOD_CV": 0,
    "MOD_CV_CTM": null,
    "MOD_ID": 4500,
    "MOD_MFA_ID": 514,
    "MOD_PC": 1,
    "MOD_PCON_END": 198810,
    "MOD_PCON_START": 197808,
    "MOD_PC_CTM": null,
    "Name": "ACADIANE"},
{
    "MOD_AXL": 0,
    "MOD_CDS_ID": 110001660,
    "MOD_CV": 0,
    "MOD_CV_CTM": null,
    "MOD_ID": 1660,
    "MOD_MFA_ID": 514,
    "MOD_PC": 1,
    "MOD_PCON_END": 197712,
    "MOD_PCON_START": 196301,
    "MOD_PC_CTM": null,
    "Name": "AMI"}
// etc..etc..
]​ 

しかし、選択値MOD_IDとして、および選択オプションのテキストとして設定する方法:名前?

私はこのデータをテキストで持っています:

$(".man-select").change(function(){
    var mfa_id = $(".man-select").val();
    console.log(mfa_id);
    $.ajax({ 
      url: "/get_models_for_mfa/mfa_id="+mfa_id+".json",
      type: "GET", 
      data: {},
      success: function(text)   //here is object
      {
        console.log("getted");
        $('.mod-select')
         .append($("<option></option>")
         .attr("value",text)
         .text(text)); 
      },
      error: function(){
        //alert('Ошибка javascript');
      },
      dataType : "html"
    });      
  });
4

3 に答える 3

5

文字列をJSON形式に解析してから、次のように繰り返すことができます。

success: function(text){
    var your_object = JSON.parse(text);
    $.each(your_object , function(k, item) { 
       $('.mod-select')
             .append($("<option></option>")
             .attr("value", item.MOD_ID)
             .text(item.Name));
    });
}
于 2012-10-26T16:48:50.230 に答える
3

dataType : "html" に変更dataType : "json"

次に成功関数で次の変更を行います

success: function(text){
    console.log("getted");
    vat html = '' ; 
    $.each(text , function(i){
        html += '<option value="' + text[i]["MOD_ID"] + '">'
                           + text[i]["name"] + '</option>' ;
    }
    $('.mod-select').empty().append(html);
}
于 2012-10-26T16:49:26.393 に答える
0

私があなたの質問を正しく理解しているなら、あなたは返されたjsonリストからリストに値を追加したいselectですか?
もしそうなら、これは私が通常それを行う方法です:

var myData = json.d;
var h = [];

$.each(myData, function(i, val) {
    h.push('<option value="' + val.MOD_ID+ '">' + val.Name + '</option>');
});
$('#yourSelect').empty().append(h.join(''));

DOMを検索してすべてのアイテムの選択に追加するよりもはるかに高速であるため、最初に値を配列にプッシュします。

于 2012-10-26T16:49:32.303 に答える