#php #jquery #ajax
#php #jquery #ajax
Вопрос:
В основном у меня 28 элементов, я использовал разбивку на страницы и отображение на 3 страницах с помощью Ajax, на каждой странице есть 10 элементов, независимо от того, что я выбрал в флажке, внизу должны отображаться значения, сейчас все в порядке, но моя проблема в том, что когда я выбираю элементы на второй странице, предыдущий список исчезает, когда я возвращаюсь на первую страницу, на ней не отображаются ранее выбранные элементы.
я не понимаю, как это сделать, пожалуйста, помогите, спасибо, я использовал этот код jquery для получения проверенных значений
function showValues() {
var page = $("#pagedis").val();
var fields = $(":input").serializeArray();
$("#results_" page).empty();
jQuery.each(fields, function(i, field) {
$("#results_" page).append(field.value "<br> ");
});
}
мне нужно действие, подобное gmail, если мы выберем 3 элемента на одной странице, 4 элемента на 2-й странице, когда я вернусь, проверенное значение никогда не изменится
Комментарии:
1. Вы сохраняете свои значения в сеансах PHP?
2. Согласен с Брайсом — если вы удаляете эти элементы из DOM без сохранения предыдущих состояний (например, используя сеансы), то браузер не будет знать, что нужно повторно применять значения, когда вы добавляете элементы обратно в DOM.
3. я присвоил имя элемента в качестве значения флажку, поэтому я просто отображаю выбранные значения в div
Ответ №1:
- у всех ваших флажков одинаковое имя? Если нет, назовите их все одинаково.
- убедитесь, что у каждого флажка есть уникальный атрибут value
- прикрепите обработчик для отслеживания флажков, установленных в массиве
:
// global variable somewhere
var checkedBoxes = new Array();
$('input[name=theNameYouDefinedAbove]').click(function(event){
checkedBoxes[$(this).val()] = $(this).is(':checked');
});
- Теперь, когда вы разбиваете страницы на страницы, просто сделайте это
:
$('input[name=theNameYouDefinedAbove]').each(function(index, checkbox){
if (checkedBoxes[$(checkbox).val()]) {
// NOTE: choose ONLY ONE!
// for jQuery 1.6
$(checkbox).prop('checked', true);
// for all jQuery
$(checkbox).attr('checked', 'checked');
}
});
Комментарии:
1. while($row2=mysql_fetch_array($res2)) { $menu_name=$row2[‘menu_name’]; echo «<тип ввода =’checkbox’ имя=’check’ значение='».$menu_name.»‘ id='».$menu_id.»‘ onclick=’showValues();’ «.$dischk.» />»;}
2. Извините, если вы имели в виду, что это последовательная мысль, боюсь, у вас не получилось.
3. Избавьтесь от onclick и подключите его
$(document).ready(function() { ... here ... });
. У вас был вопрос по поводу моего ответа или что-нибудь еще?