За последние 24 часа нас посетили 17709 программистов и 1682 робота. Сейчас ищут 959 программистов ...

page reload

Тема в разделе "JavaScript и AJAX", создана пользователем Your, 30 авг 2012.

  1. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Вообщем проблема такая!
    Есть ли у javascript возможность перезагрузить страницу без потери $_POST

    Код (PHP):
    1. if(isset($_POST['p'])) {
    2.     echo $_POST['p'];
    3. } 
    Код (PHP):
    1. <form method="post">
    2.     <input type="text" name="p" value="1">
    3.     <input type="submit" value="submit">
    4. </form> 
    После нажатия на кнопку:

    Код (PHP):
    1. <a href="javascript:window.location.reload()">
    2.     reload
    3. </a> 
    Данные сбросятся.
    А вот если нажать F5 данные останутся.

    Как мне такого добиться, врубиться не могу никак.

    reload(false или true) не помогает.

    Пожалуйста знатоки помогите...
    Есть ли вообще такая возможность!?

    Нужно перезагрузить страницу без потери...
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    При нажатии F5 браузеры обычно спрашивают - а Вы точно уверены, что хотите заново отправить POST-запрос... Кроме Оперы - она так отправляет без вопросов.
    А по теме - не в курсе, никогда такого не требовалось. Думаю, можно на PHP генерировать скрытую POST-форму (состоящую из тех же переменных и значений, которые пришли в $_POST), а потом на JS при нажатии на кнопку - субмитить эту форму.
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну это я вкурсах...
    Но задача именно без других вот этих форм и т.д., на js только.

    Я вот нигде не могу найти этого, так то выход есть, а вот именно такой, чтобы только на js нету, что - то нигде.
    Если, что найдете, пишите!
    А так спасибо =), пока обойдусь значит тем, что есть)
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Сейчас из любопытства проверил. Что так:
    Код (Text):
    1. document.location.reload();
    ,что так:
    Код (Text):
    1. window.location.reload();
    во всех браузерах, кроме google chrome, при обновлении страницы на JavaScript, POST-данные передаются повторно. Только Chrome почему-то не отправляет их заново.
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ага, у меня хром =)), ну мне вот такой ньюан не нужен правда =))

    А то то там не будет то там!
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не надо так делать
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Да так и не делал)
    Там нужно было немного другое.
    Там была блокировка на вход, только для одного и когда он заходит запросы выполняются и его перемещает, а другой кто раньше зашел, у него высвечивается "подождите используется...", после завершения его отправляет и другому блокирует.
    Но так то обошлось все и просто формой.
     
  8. skeef

    skeef Активный пользователь

    С нами с:
    11 май 2011
    Сообщения:
    5
    Симпатии:
    0
    Если не обновлять страницу, а сабмитить форму - запрос браузером не выводится:
    Код (Text):
    1. setInterval("document.forms['formname'].submit()", 10000);
    Для себя решил проблему с помощью AjAX`a.
    Если В POST`e не много данных - как вариант
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    skeef, Ты был совсем близок к цели, но апаздал.