Здравствуйте. Подскажите, как правильно сделать проверку данных в ajax с php и перенаправить на другую страницу. ТО есть вот у меня код: PHP: $hrefon = 1; $message = '....'; $result = array( 'message' => $message, 'redirect' => $hrefon ); // Переводим массив в JSON echo json_encode($result); Код (Javascript): function sendAjaxForm(result_form, ajax_form, url) { $.ajax({ url: url, //url страницы () type: "POST", //метод отправки dataType: "html", //формат данных data: $("#"+ajax_form).serialize(), // Сеарилизуем объект success: function(response) { //Данные отправлены успешно result = $.parseJSON(response); $('#result_form').html(result.message); var count = html(result.redirect); if(count == 1) { //$('#result_form').html(result.redirect); window.location.replace("/user/profile/"); } }, error: function(response) { // Данные не отправлены $('#result_form').html('Ошибка. Данные не отправлены.'); } }); } Правильно ли я делаю проверку переменной redirect в ajax?
Делайте все проверки на стороне php. PHP: // проверяем, если все хорошо echo "/user/profile/"; Код (Javascript): window.location.replace(response);
Как мне реализовать это уже с написанным кодом? Код (Javascript): success: function(response) { //Данные отправлены успешно result = $.parseJSON(response); $('#result_form').html(result.message); },
PHP: $hrefon = 1; $message = '....'; if($hrefon === 1){ $result = array( 'redirect' => "/user/profile/" ); }else{ $result = array( 'message' => $message ); // Переводим массив в JSON echo json_encode($result); Код (Javascript): success: function(response) { //Данные отправлены успешно result = $.parseJSON(response); if(result.message){ $('#result_form').html(result.message); } if(result.redirect){ window.location.replace(result .redirect); } },
А смысл, человек даже не успеет прочесть ваше сообщение --- Добавлено --- можно так конечно: PHP: $hrefon = 1; $message = '....'; if($hrefon === 1){ $redirect = "/user/profile/"; }else{ $redirect = false; } $result = array( 'redirect' => $redirect, 'message' => $message ); // Переводим массив в JSON echo json_encode($result); Код (Javascript): success: function(response) { //Данные отправлены успешно result = $.parseJSON(response); $('#result_form').html(result.message); if(result.redirect !== false){ window.location.replace(result.redirect); } }, --- Добавлено --- И у последней версии jquery есть функция post c json: https://api.jquery.com/jquery.post/ Код (Javascript): $.post( "url", $("#"+ajax_form).serialize(), function(data) { console.log(data); }, "json");
Всё, спасибо. Код (Javascript): setTimeout('window.location.replace(result .redirect)', 5000); Вот так через время перенаправляет)