2017-03-01 12 views
0

filter items.phpというPHPファイルへのAJAX呼び出しを使用して作成されたドロップボックス(jQueryオートコンプリートウィジェットの使用)があります。ユーザーが選択したアイテムを追跡できるようにしたいので、別のページに移動する場合は、選択したアイテムが戻っても保持されます。Prop( 'selected'、true)ドロップリスト項目をあらかじめ選択していない

私はアイテムのIDを一時的に保持するテーブルにアイテムを選択したときに、そのアイテムを選択することでこれを達成しようとしています。彼らがページに戻ると、 'check basket.php'というPHPファイルに別のAJAX呼び出しを行い、現在選択されている項目のリストを返します。ドロップダウンリストを生成するときに両方のリストの項目を比較します。一致する場合はprop('selected', true)を追加しますが、動作しないようです。ここで

コードです:

//Check for items in Basket 
$.ajax({ 
    url: "check basket.php", 
    dataType: "json", 
    success: function(datas) { 
    var s = 0; 
    var cbox = []; 
    var itemid = []; 
    var quant = []; 
    $.each(datas, function(index, selected) { 
     while (selected.cbox[s]) { 
     cbox[s] = selected.cbox[s]; 
     itemid[s] = selected.item_id[s]; 
     quant[s] = selected.quant[s]; 
     s++; 
     } 
    }) 

    //BUILD LIST 
    $.ajax({ 
     url: "filter items.php?type=0", 
     dataType: "json", 
     success: function(data) { 
     $.each(data, function(index, publisher) { 
      for (r = 1; r < 21; r++) { 
      j = 1; 
      while (publisher.item[j]) { 
       for (sc = 0; sc < cbox.length; sc++) //Compare items in basket to pre-select 
       { 
       if (r == cbox[sc] && publisher.item_id[j] == itemid[sc]) { 
        alert(publisher.item[j] + " is in Basket for cbox " + cbox[sc] + " and J is " + j); 
        $('#' + r + 'combobox').append($('<option>', { 
        value: publisher.item_id[j] 
        }).text(publisher.item[j]).prop('selected', true)); 
       } else 
        $('#' + r + 'combobox').append($('<option>', { 
        value: publisher.item_id[j] 
        }).text(publisher.item[j])); 
       j++; 
       } 
      } 
      } 
     }) 
     } 
    }); 
    } 
}); 

答えて

0

私は私がここで間違って何をやったか実現してきた、プロップは(「選択」、true)のリストの実際の内容ではなかったそのことだけ、正常に動作していますJqueryオートコンプリートコードの前に生成されたことはそのことでした。私はリストを生成するAJAX関数の設定を非同期に変更し、そのトリックを行った!

関連する問題