У меня есть таблица со списком из 5 элементов, которая генерируется динамически с использованием AJAX с бэкэндом PHP / MySQL. Каждый элемент имеет флажок INPUT рядом с ним.
При загрузке страницы некоторые флажки должны отображаться как «отмеченные» в зависимости от набора значений, возвращаемых PHP / MySQL. Таким образом:
var checked_items = [];
// var checked_items = new Array(); // this is not working either
var GetItemsFromXML;
var SplitItems;
var XMLItemsObj = new Object;
// function...
function DisplayItems() {
CreateRObj(function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
GetItemsFromXML=xmlhttp.responseText; // returns pike delim list
SplitItems = GetItemsFromXML.split("|"); // split at pike
// status - either "all" or "selected"
XMLItemsObj.checkedstatus = SplitItems[0];
// drop last ","
SplitItems[1] = SplitItems[1].substr(0,SplitItems[1].lastIndexOf(","));
// split at comma and pass to variable
checked_items = SplitItems[1].split(",");
}
});
xmlhttp.open("POST","loaditems.php",true);
xmlhttp.send();
}
На данный момент, переменная «checked_items» содержит значения, возвращаемые PHP / MySQL.
Эти значения будут определять, какой флажок снят.
Я подтвердил, что эта переменная заполняется путем тестирования, чтобы увидеть, если она пуста (""),
undefined или ноль.
Теперь, когда страница загружается, приведенный ниже код перебирает все флажки и проверяет их в зависимости от состояния «XMLItemsObj.checkedstatus». Если статус «выбран», то отмечаются только некоторые из них. Если статус «все», все флажки должны быть сняты.
Вот код, который делает это:
if (XMLItemsObj.checkedstatus=="selected") {
for (i=0; i < checked_items.length; i++) {
$(":checkbox[value="+checked_items[i]+"]").attr("checked",true);
}
} else if (XMLItemsObj.checkedstatus=="all") {
$("input:checkbox").each(function() {
$("input:checkbox").attr("checked",true);
});
}
Здесь вещи начинают становиться странными ...
Вышеуказанное работает только тогда, когда я использую функцию "оповещения"
проверить значения в переменной «checked_items». Оно работает
когда ".checkedstatus" равен "all" или когда он "выбран".
Таким образом, если бы я использовал, например, этот код:
alert("The values of the checked_items variable are: "+checked_items);
Тогда приведенный выше код будет отлично работать.
Однако иначе это не работает. Ни когда статус "все", ни когда
когда статус «выбран».
Я в растерянности, но я предполагаю, что переменная либо теряет свою
значение или событие (я) не запускаются. Однако я не уверен.
У кого-нибудь есть идеи? Все комментарии, идеи, решения и мысли
Добро пожаловать Заранее спасибо!