Ich habe eine Dropbox (mit dem jQuery Autocomplete-Widget), die mit einem AJAX-Aufruf in eine PHP-Datei namens filter items.php
gefüllt wird. Ich möchte in der Lage sein, zu verfolgen, welche Elemente der Benutzer ausgewählt hat, so dass, wenn sie zu einer anderen Seite gehen würden, ihre Auswahlen beibehalten werden, wenn sie zurückkehren.Prop ('selected', true) Funktioniert nicht zur Vorauswahl des Dropdown-Listenelements
Ich versuche dies zu erreichen, indem ich eine Tabelle bevölkere, die die ID des Artikels vorübergehend enthält, während sie ihre Auswahl treffen. Wenn sie zu der Seite zurückkehren, wird ein weiterer AJAX-Aufruf an eine PHP-Datei mit dem Namen "check basket.php" erfolgen, die die Liste der aktuell ausgewählten Objekte zurückgibt. Es wird dann Elemente aus beiden Listen vergleichen, da es die Dropdown-Liste generiert, wenn es eine Übereinstimmung gibt, die ich prop('selected', true)
hinzufüge, aber es scheint nicht zu funktionieren?
Hier ist der Code:
//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++;
}
}
}
})
}
});
}
});