За последние 24 часа нас посетили 50850 программистов и 1747 роботов. Сейчас ищут 875 программистов ...

Переадресация

Тема в разделе "PHP для новичков", создана пользователем seifer, 26 июл 2017.

  1. seifer

    seifer Новичок

    С нами с:
    27 май 2017
    Сообщения:
    76
    Симпатии:
    2
    Со страницы данные уходят в аякс, обрабатываются и пишутся в бд. При этом при обновлении страницы данные перезаписываются в бд. Знаю что проблема известная, но Header("Location: ".$_SERVER['PHP_SELF']); не помогает, либо я не туда вставляю, помогите разобраться плз.
     
  2. xaker01

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

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Лучшее более подробный код.
    но если надо что бы сработала переадресация и код за ней не выполнялся то

    PHP:
    1. Header("Location: ".$_SERVER['PHP_SELF']);
    2. exit();
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    шта?
     
    mkramer нравится это.
  4. seifer

    seifer Новичок

    С нами с:
    27 май 2017
    Сообщения:
    76
    Симпатии:
    2
    JS принимает значения чекбоксов и передает их в файл-обработчик, который затем выводит все на основной странице. Если через хедер делать, то не пойму где его вызывать в таком случае надо. Как я понял надо после записи в бд обрубить все процессы?
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    так а почему же они многократно пишутся?
     
  6. seifer

    seifer Новичок

    С нами с:
    27 май 2017
    Сообщения:
    76
    Симпатии:
    2
    Сначала выводим ряд кнопок
    Код (Text):
    1.  
    2. if(count($_POST['submit_q'])== 0 ){get_tests();}
    3.     else {print_quest($result);
    4.  
    5.     }
    Код (Text):
    1.  
    2. function get_tests(){
    3. $query = "SELECT * FROM х";
    4.  
    5. $res = mysql_query($query) or die(mysql_error());
    6.  
    7. while($row = mysql_fetch_array($res)){
    8.  
    9.     $data = $row['dia'];
    10.     echo "<input type='submit' class='but01' name='submit_q[]'  value='".$data."'/>";
    11.     }
    12. }
    Затем если в пост от кнопки что-то пришло, запускаем чекбоксы
    Код (Text):
    1.  
    2. function print_quest($result){
    3.     foreach ($result as $data){
    4.             echo "<div class='answer_frame'><label class='lab01'><input type='checkbox'  name='sim[]'  value='".$data."'/> ".$data."</label></div>";
    5.         }
    6.         echo "<input type='button' id='send' name='simptomSubmit'  value='Submit'  /> ";
    JS ловим отмеченные чекбоксы и передаем в обработчик. Выходит что при обновлении страницы мы возвращаемся на момент выдачи чекбоксов, а они должны вылезать в зависимости от того что пришло в пост. Пробовать сразу редиректить на другую страницу после обработки чекбоксов или какое-то условие нужно что бы php повторно не выполнялся при обновлении?