4

私はJSコードを持っています:

$("#select_bank").change(function () {
  selected_bank = $("#select_bank option:selected").text();

  $.ajax({
    type: 'POST',
    dataType: 'html',
    data: {
      selectedBank: selected_bank
    },
    url: '<?= base_url() . 'atm/select_region'; ?>',
    success: function (list_regions) {
      foreach(keyVar in list_regions) {
        alert(list_regions[keyVar]);
      }
    }
  });
});

コールバック「成功」で、サーバーのスクリプトから配列を取得します-アラートで「配列」が表示されます-したがって、上記でコーディングしたように、クライアント側でこの配列を反復処理したいのですが、実行するとコンソールでエラーが発生します- 「varkeyVarが定義されていません」。私が理解しているように、list_regionsパラメータを配列またはそれを修正する別の方法として型キャストする必要があります。どうやってもっと良くするの?ありがとう!

upd:ここに画像の説明を入力してください

4

3 に答える 3

6

私が正しければ、foreachループをそのようにjqueryに変換することはできません。

値を繰り返すには、.eachを使用する必要があります

$.each(list_regions, function(index, value) {
  alert(value);
});

詳細については、こちらをご覧ください。

于 2012-09-01T06:17:18.700 に答える
4

Javascriptには構造がありませんforeach$.eachjQueryのメソッドを使用する

于 2012-09-01T06:14:19.783 に答える
0

これを試して:

$("#select_bank").change(function(){
    // The following line was missing a var declaration,
    // Making it an implicit global
    var selected_bank = $("#select_bank option:selected").text();

    $.ajax({
        type:'POST',
        dataType:'html',
        data: { selectedBank: selected_bank },
        url:'<?=base_url().'atm/select_region'; ?>',
        success:function(list_regions){
            var keyVar;
            for(keyVar in list_regions) {
                if (list_regions.hasOwnProperty(keyVar)) {
                    alert(list_regions[keyVar]);
                }
            }
        }
    });

});
于 2012-09-01T06:13:16.857 に答える