2016-07-29 5 views
1

ajaxを使用してphp/mysqlクエリからselect2入力ボックスにデータを入力しようとしています。JSON AjaxレスポンスからSelect2を設定する

var groups_array = []; 

    $.getJSON('ajax_get_json.php?what=contact_groups', function (data) { 

     $.each(data, function (index) { 
      groups_array.push({ 
       id: data[index].value, 
       text: data[index].text 
      }); 
     }); 

    }); 

$("#contact_groups_select").val(groups_array); 

contact_groups_selectは私SELECT2入力のIDです:

は、ここに私のコードです。

マイJSON AJAXの応答は次のようになります。

[{"value":"12","text":"Brodheadsville"}] 

マイSELECT2はいえ移入されていません。いくつかの助けを得るために十分なコードを提供したいと思っています。ありがとう。あなたはSELECT2方法

$('#contact_groups_select').select2({data: groups_array}); 

答えて

1

groups_arrayが取り込まれていないことであるgetJSONのコールバック()メソッドいる非同期まで。

だから、あなたは、コールバック関数の中にコードを置く必要があります。REPONSEため

var groups_array = []; 

$.getJSON('ajax_get_json.php?what=contact_groups', function (data) { 
    $.each(data, function (index) { 
     groups_array.push({ 
      id: data[index].value, 
      text: data[index].text 
     }); 
    }); 
    // Call val() or select2() method here 
    $("#contact_groups_select").val(groups_array); 
}); 
+0

おかげで、それはどちらかそれを移入しません。 –

+0

'groups_array'の値をログに記録して、それが有効であることを確認しましたか? – stackoverfloweth

+0

$( '#contact_groups_select').val(12)はオプションの1つを設定します。だから私は.valを使ったのです。 –

0

問題を使用しなければならないという.val()を使用するよりも

+0

皆さんありがとう。私はあなたが正しいと思う、Chitrang、しかし、そのコードは人口のいずれかを取り組んでいない。私は配列に対処する必要があると思う。配列のconsole.logを実行すると、何も記録されません。 .each関数内で警告(data [index] .value)しようとすると、各IDは警告ボックスに表示されます。 –

+0

私はあなたのコードを使用して、配列が表示されているgetJSON内の配列をログに記録し直すことにしましょう! –

+0

あなたのコードが何らかの理由で動作する必要がありますので、chitrangしてください。 –

関連する問題