За последние 24 часа нас посетили 22384 программиста и 1179 роботов. Сейчас ищут 699 программистов ...

Как проверить данные с php и перенаправить страницу

Тема в разделе "JavaScript и AJAX", создана пользователем kaban4ik163, 29 май 2019.

  1. kaban4ik163

    kaban4ik163 Новичок

    С нами с:
    29 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте. Подскажите, как правильно сделать проверку данных в ajax с php и перенаправить на другую страницу.
    ТО есть вот у меня код:
    PHP:
    1. $hrefon = 1;
    2. $message = '....';
    3. $result = array(
    4.     'message' => $message,
    5.     'redirect' => $hrefon
    6. );
    7.  
    8. // Переводим массив в JSON
    9. echo json_encode($result);
    Код (Javascript):
    1. function sendAjaxForm(result_form, ajax_form, url) {
    2.     $.ajax({
    3.         url:     url, //url страницы ()
    4.         type:     "POST", //метод отправки
    5.         dataType: "html", //формат данных
    6.         data: $("#"+ajax_form).serialize(),  // Сеарилизуем объект
    7.         success: function(response)
    8.         { //Данные отправлены успешно
    9.             result = $.parseJSON(response);
    10.             $('#result_form').html(result.message);
    11.             var count = html(result.redirect);
    12.             if(count == 1)
    13.             {
    14.                 //$('#result_form').html(result.redirect);
    15.                 window.location.replace("/user/profile/");
    16.             }
    17.         },
    18.         error: function(response) { // Данные не отправлены
    19.             $('#result_form').html('Ошибка. Данные не отправлены.');
    20.         }
    21.      });
    22. }
    Правильно ли я делаю проверку переменной redirect в ajax?
     
  2. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Делайте все проверки на стороне php.
    PHP:
    1. // проверяем, если все хорошо
    2. echo  "/user/profile/";
    Код (Javascript):
    1. window.location.replace(response);
     
  3. kaban4ik163

    kaban4ik163 Новичок

    С нами с:
    29 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Как мне реализовать это уже с написанным кодом?

    1. Код (Javascript):
      1. success: function(response)
      2.        { //Данные отправлены успешно
      3.             result = $.parseJSON(response);
      4.             $('#result_form').html(result.message);
      5.        },
     
  4. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1. $hrefon = 1;
    2. $message = '....';
    3. if($hrefon === 1){
    4.    $result = array(
    5.       'redirect' => "/user/profile/"
    6.     );
    7. }else{
    8.    $result = array(
    9.        'message' => $message
    10.    );
    11. // Переводим массив в JSON
    12. echo json_encode($result);
    Код (Javascript):
    1. success: function(response)
    2.        { //Данные отправлены успешно
    3.            result = $.parseJSON(response);
    4.            if(result.message){
    5.                 $('#result_form').html(result.message);
    6.            }    
    7.            if(result.redirect){
    8.                 window.location.replace(result .redirect);
    9.            }
    10.        },
     
    kaban4ik163 нравится это.
  5. kaban4ik163

    kaban4ik163 Новичок

    С нами с:
    29 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Мне нужно сообщение всегда выводить, а не в один момент сообщение а в другой переадресовывать
     
  6. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    А смысл, человек даже не успеет прочесть ваше сообщение
    --- Добавлено ---
    можно так конечно:
    PHP:
    1. $hrefon = 1;
    2. $message = '....';
    3. if($hrefon === 1){
    4.    $redirect = "/user/profile/";
    5. }else{
    6.    $redirect = false;
    7. }
    8. $result = array(
    9.        'redirect' => $redirect,
    10.        'message' => $message
    11. );
    12. // Переводим массив в JSON
    13. echo json_encode($result);
    Код (Javascript):
    1. success: function(response)
    2.        { //Данные отправлены успешно
    3.            result = $.parseJSON(response);
    4.            $('#result_form').html(result.message);
    5.            if(result.redirect !== false){
    6.                 window.location.replace(result.redirect);
    7.            }
    8.        },
    --- Добавлено ---
    И у последней версии jquery есть функция post c json:
    https://api.jquery.com/jquery.post/

    Код (Javascript):
    1. $.post( "url", $("#"+ajax_form).serialize(), function(data) {
    2.   console.log(data);
    3. }, "json");
     
    kaban4ik163 нравится это.
  7. kaban4ik163

    kaban4ik163 Новичок

    С нами с:
    29 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Всё, спасибо.
    Код (Javascript):
    1. setTimeout('window.location.replace(result .redirect)', 5000);
    Вот так через время перенаправляет)