Хранить проверенные значения со страниц ajax

#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:

  1. у всех ваших флажков одинаковое имя? Если нет, назовите их все одинаково.
  2. убедитесь, что у каждого флажка есть уникальный атрибут value
  3. прикрепите обработчик для отслеживания флажков, установленных в массиве

:

 // global variable somewhere
var checkedBoxes = new Array();

$('input[name=theNameYouDefinedAbove]').click(function(event){
    checkedBoxes[$(this).val()] = $(this).is(':checked');
});
  
  1. Теперь, когда вы разбиваете страницы на страницы, просто сделайте это

:

 $('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 ... }); . У вас был вопрос по поводу моего ответа или что-нибудь еще?