Переменная потеря, отправленная в строке запроса с предыдущей страницы при обновлении в php

0

У меня есть код, в котором я перехожу от одной страницы к другой и передаю переменную в querystring. Я получаю эту переменную на следующей странице и показываю результаты, связанные с этим. Но когда я обновляю вторую страницу, она говорит, что переменная, которую я получил с первой страницы, не определена.

следующая ссылка

<a href="next.php?name=men-shoes">shoes</a>

next.php выглядит следующим образом

$lcSearchVal=$_GET['name'];
<input type="checkbox" name="check" value="one">one<br>
<input type="checkbox" name="check" value="two">two<br>

<script>
$('input[type="checkbox"]').on('change', function(e){
    var data = $('input[type="checkbox"]').serialize(),
        loc = $('<a>', {href:window.location})[0];
    $.post('/ajax-post-url/', data);
    if(history.pushState){
        history.pushState(null, null, loc.pathname+'?'+data);
    }
});
</script>

Сначала я получаю lcSearchVal на второй странице, но когда я обновляю страницу, я получаю ошибку в браузере, это имя является неопределенным индексом.

Как исправить это, чтобы при обновлении страницы она была в том же состоянии? то есть флажки, которые я проверил, должны оставаться отмеченными, а lcSearchVal следует читать одинаково.

Теги:

2 ответа

0
Лучший ответ

Вам нужно включить $lcSearchVal в URL-адрес, который вы нажимаете:

history.pushState(null, null, loc.pathname+'?name=<?php echo urlencode($lcSearchVal) ?>&'+data);
  • 0
    я.это сработало. спасибо за тонну ...
1

Одним из быстрых решений было бы использование сеансов. Таким образом, ваш код станет следующим:

session_start();
if(isset($_SESSION['name']) && ! isset($_GET['name']))
{
   $lcSearchVal = $_SESSION['name'];
}
else
{
    $lcSearchVal = $_GET['name']; // do not forget to sanitize this data
    $_SESSION['name'] = $lcSearchVal;
}
  • 0
    Это выглядит fyn.but я получаю эту проблему на tym, когда я проверил флажок, указанный в html.like, когда я на второй странице без каких-либо флажков, то он работает нормально. Но когда я выбрал флажок, а затем обновить, чем я получаю неопределенный индекс ошибка имени
  • 0
    Либо я не понял вашу точку зрения, либо у вас есть дополнительный код, который вы не опубликовали. Использование вышеуказанного метода удалит уведомление о неопределенном name индекса

Ещё вопросы

Сообщество Overcoder
Наверх
Меню