@Scheuble

Как сделать if/else после возврата данных jquery из ajax({url:"", success: })?

Многоуважаемые гуру, подскажите ламеру: Имеется вот такой скрипт
<script>
        $(document).ready(function(){
            $('#btn_submit').click(function(){
                // собираем данные с формы
                var user_email   = $('#user_email').val();
                // отправляем данные
                $.ajax({
                    url: "action.php",
                    type: "post", 
                    dataType: "json",
                    data: {
                        "user_email":   user_email,
                    },
                    // после получения ответа сервера
                        success:function(data){
                        $('.messages').html(data.result);   // выводим ответ сервера
                        }
                });
            });
        });
    </script>

скрипт при вводе емейл-адреса отправляет его на action.php, который в свою очередь проверяет его на корректность (и не только), и если все в порядке через
echo json_encode(array(
        'result' => $msg_box
// $msg_box = "спасибо за регистрацию"
// или "введенный адрес не корректный"
                             ));
выводит клиенту
<div class="messages"></div> либо введенный адрес не корректный
либо спасибо за регистрацию.

Что я хочу изменить:
Я хочу, что бы при позитивном ответе action.php, то биш при спасибо за регистрацию клиенту выводилось не сообщение, а вызывался бы определенный URL, например ../thankyou.html

Как я понимаю, в action.php нужно
echo json_encode(array(
        'result' => $msg_box 
    ));

при позитивном ответе изменить
с
$msg_box = "спасибо за регистрацию"
на $msg_box = "0"
а в клиентском jquery добавить if/else, где при result=0 скрипт будет вызывать ../thankyou.html

Подскажите пожалуйста, как реализовать, что изменить в jquery?
  • Вопрос задан
  • 4710 просмотров
Решения вопроса 1
teotlu
@teotlu
Навёрстываю упущенное
success:function(data){
  if(data.result == '0') {
    window.location = ' ../thankyou.html';
  }
}

Только, обратите внимание, вы делаете $msg_box строкой, содержащей символ 0. Я не очень понимаю, зачем, но написал проверку именно на это значение.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mlnkv
@mlnkv
JavaScript Developer
$(function() {

  $('#btn_submit').on("click", function() {
    $.post("action.php", { "user_email": $('#user_email').val() }, function(resp) {
      if (!resp.result) {
        window.location = '../thankyou.html';
      }
    });
  });

});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы