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++;
}
}
}
})
}
});
}
});