jQuery - загрузить div и сохранить флажок - PullRequest
0 голосов
/ 26 июня 2018

В одном файле (content.html) у меня есть динамически генерируемая таблица (от Django). В одном из семи столбцов у меня есть флажок - один флажок для каждой строки.

Я импортирую div, который содержит эту таблицу, в index.html, используя jQuery load () - таблица обновляется каждые 10 секунд. Мне нужно хранить флажок между обновлениями, потому что это значение для формы и отправки. Как я могу это сделать?

Привет! * * 1005

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Итак, я нашел различные решения (я ожидал от вас готового решения, но не в этот раз :)).

Итак, на странице, где у меня есть div для импорта (clients.html), у меня есть следующий код:

    <div id="table_cont">
        <table>
            // Some content dynamically generated by Django //
        </table>
<script language="javascript" type="text/javascript">
$('.selected_cli').on('click', function() {
  var fav, favs = [];
  $('.selected_cli').each(function() {
    fav = {id: $(this).attr('id'), value: $(this).prop('checked')};
    favs.push(fav);
  });
  localStorage.setItem("favorites", JSON.stringify(favs));
});

$(document).ready(function() {
  var favorites = JSON.parse(localStorage.getItem('favorites'));
  if (!favorites.length) {return};
  console.debug(favorites);

  for (var i=0; i<favorites.length; i++) {
    console.debug(favorites[i].value == 'on');
    $('#' + favorites[i].id ).prop('checked', favorites[i].value);
  }
});
</script>

На index.html у меня есть:

 <script language="javascript" type="text/javascript">
       $('document').ready(function(){
       setInterval(function(){
        $.ajax({
          url: "/clients/ #table_cont",
        }).done(function ( data ) {
          $("#fresh_table_cont").html(data);

        });
        }, 10000);
        });
 </script>
 <div id="fresh_table_cont"></div>

Нужна ли коррекция? Из первого теста я знаю, что это работа.

0 голосов
/ 26 июня 2018

Ну, так как вся ваша таблица вместе с ее формами обновляется каждые десять секунд, единственное, что вы можете здесь сделать, это сохранить данные формы в LocalStorage или Cookies (если вам это нужно быть настойчивым) или государство переменная перед каждым AJAX-запросом, который обновляет таблицу, и в функции обратного вызова для функции load () вам нужно будет написать код для вставки этих значений обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...