За последние 24 часа нас посетили 17544 программиста и 1281 робот. Сейчас ищут 1622 программиста ...

Сохранение даных в базу перед переходом на другую страницу

Тема в разделе "PHP и базы данных", создана пользователем Yudzhin, 29 ноя 2006.

  1. Yudzhin

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

    С нами с:
    29 ноя 2006
    Сообщения:
    5
    Симпатии:
    0
    Добрый день господа, есть проблемка одна, есть форма с даными, можна ли скажем перед переходом на другую страницу сохранить даные которые введены в ету форму?
    Я догадался это сделать токо перегрузив страницу и в посте сохранил даные, а после сохранения даных токо перехожу на другую страницу.
    Но ето немного неприятно при переходе видить как страница перегружается и загружается новая.
    Может ктото может подсказать как это сделать правильно и красиво?
    Наперед спасибо!!!

    И сразу еще 1 вопрос, почему это работает, ведь при перезагрузке страницы сначала выполняется $_POST['next'] тоесть переход страницы а до сохранения не должно доходить?
    Код (Text):
    1.  
    2. ///////////////файл 1.php
    3. <script language="JavaScript" type="text/javascript">
    4. function next_page()
    5. {
    6.         document.getElementById("next").value = 2;
    7.         document.getElementById("save_location").submit(); // save
    8. }
    9.  
    10. function reload_next()
    11. {
    12.         location.href="2.php";;
    13. }
    14. </script>
    15. <?php
    16.  
    17.  if( isset($_POST['next']) )
    18. {
    19.     if( $_POST['next'] == "2" )
    20.     {
    21.         echo "<body onload='reload_next()'>";
    22.     }
    23. }
    24. if ( isset($_POST['save']) )
    25. {
    26.         $querysl = "update info set name='".$_POST['name']."',
    27.             namelast='".$_POST['namelast']."'
    28.             where id='".$_SESSION['id']."'";
    29. }
    30.  
    31. ?>
    32.    <form name="savelocation" method="post" action="1.php" id="save_location" onsubmit="return Check()">
    33.     <input type="hidden" name="next" value="0">
    34.     <input type="hidden" name="save" value="1">
    35.     <input type="text" name="name">
    36.     <input type="text" name="amelast">
    37.     <input type="button" value="Next" onclick="reload_next()">
    38.     </form>
     
  2. Anonymous

    Anonymous Guest

    Просто страницу надо надо не скриптами перегружать а заголовком Location:
    PHP:
    1. <?php
    2. header('Location: /go/to/file.php');
    3. ?>
     
  3. Yudzhin

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

    С нами с:
    29 ноя 2006
    Сообщения:
    5
    Симпатии:
    0
    Так пробывал через header() ошибку выдает
     
  4. Yudzhin

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

    С нами с:
    29 ноя 2006
    Сообщения:
    5
    Симпатии:
    0
    А хотя знаеш я поставил переход header('Location: /go/to/file.php'); перед загрузкой заголока и прошло.
    Большое спасибо!!!!
    Иногда решение проблемы так близко, токо почемуто трудно его наити.
     
  5. Yudzhin

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

    С нами с:
    29 ноя 2006
    Сообщения:
    5
    Симпатии:
    0
    А еще 1 вопросик если можна, почему страница сохраняется, ведь сначала идет переход, а потом сохранение даных, поидее оно не должно доходить до сохранения ??
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    всё равно после header("location:"); код выполняется. По-этому надо сразу делать die();

    или вот так:
    PHP:
    1.  
    2. <?php
    3. die(header("location:file.php"));
    4. ?>
    5.  
     
  7. Yudzhin

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

    С нами с:
    29 ноя 2006
    Сообщения:
    5
    Симпатии:
    0
    Понял спасибо, думаю тему можна закрывать :)