#javascript #php #html #jquery #ajax
Вопрос:
У меня есть досадная проблема, когда после того, как клиентское устройство скрыло данные с помощью:
echo "function hideReq"; echo $row['requestID']; echo "() {"; echo "var x = document.getElementById('play"; echo $row['requestID']; echo "');"; echo "if (x.style.display === 'none') {"; echo "x.style.display = 'block';"; echo "} else {"; echo "x.style.display = 'none';"; echo "}";
Приведенный выше код динамически добавляет скрипт через тот же PHP, который добавляет данные идентификатора, чтобы на данные каждого идентификатора мог влиять сам скрипт.
Он отключается после обновления данных с помощью php с помощью:
$(document).ready(function(){ function getData(){ $.ajax({ type: 'POST', url: 'locationData.php', success: function(data){ $('#dataoutput').html(data); } }); } getData(); setInterval(function () { getData(); }, 120000); // it will refresh your data every 3 mins });
Приведенный выше код получает данные из внешнего PHP-документа, который добавляется в div на странице после 3-минутного восстановления.
Чтобы уточнить, код работает так, как ожидалось. Как только время восстановления обновления будет достигнуто, данные загрузятся так, как и должно быть. Однако скрытые строки снова видны.
Мне просто нужно знать, как либо;
- Сделайте так, чтобы данные запрашивали только данные с идентификаторами, которых еще нет на устройстве, чтобы оно могло запоминать скрытые строки
- Добавьте метод, который по-прежнему будет обновлять все данные, а также скрывать строки. В зависимости от того, что проще.
Комментарии:
1. Как вообще что-то скрывается? http не имеет состояния, но вы можете сохранить некоторое состояние страницы либо на сервере, либо в локальном хранилище каждого пользователя и использовать скрипт для фильтрации видимости
2. Вы не спрашивали, но пытаться управлять javascript с помощью эхо-операторов PHP, особенно когда они разбиты, как это, — это кошмар. Нет причин, по которым вы не можете использовать эту функцию javascript для своих страниц как встроенную, так и во внешнем файле .js. Просто введите аргументы функции.