#php #ajax
#php #ajax
Вопрос:
Я использую $.ajax для отправки моих данных на страницу PHP, и я знаю, что могу выполнить перенаправление, когда будет получен успешный ответ. Однако есть ли способ выполнить перенаправление с моей PHP-страницы, на которую я отправляю сообщение?
Комментарии:
1. Пожалуйста, покажите свой код и то, что вы пробовали.
2.
execute a redirect from my PHP page where I post to
да, но это в значительной степени бессмысленно. Вы не можете ничего вывести перед перенаправлением, и вы, естественно, теряете любое состояние при выполнении перенаправления. Так что, как правило, вам лучше перейти на нужную страницу. В лучшем случае вы загружаете любой «код / фреймворк», который вы используете 1 дополнительный раз, без реальной причины.
Ответ №1:
PHP
Если вам нужен PHP-способ, вы можете установить заголовок.
header('Location: www.example.com');
Предупреждение вы можете использовать заголовок только в том случае, если вы не отправляли клиенту никакой другой информации.
Помните, что header () должен вызываться перед отправкой любого фактического вывода, будь то с помощью обычных HTML-тегов, пустых строк в файле или из PHP. Очень распространенной ошибкой является чтение кода с включенными или требующими функциями или другой функцией доступа к файлам, в котором перед вызовом header() выводятся пробелы или пустые строки. Та же проблема существует при использовании одного файла PHP / HTML.
Javascript
Вы можете перенаправить браузер, используя следующее:
window.location = "www.example.com";
Это можно сделать в любое время.
Источники: PHP-Заголовок Расположение JS-окна
Ответ №2:
Вот что вы хотите. Приведенный ниже код отправляет данные на серверную часть php через ajax и перенаправляет пользователей, если размещенные данные не пусты
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#signin').click(function(){
var username = $('#username').val();
var password = $('#password').val();
if(username==""){
alert('please Enter username');
}
else if(password==""){
alert('please Enter password');
}
else{
$('#loader').fadeIn(400).html('<span>Please Wait, User is being logged</span>');
var datasend = "username=" username "amp;password=" password;
$.ajax({
type:'POST',
url:'login.php',
data:datasend,
crossDomain: true,
cache:false,
success:function(msg){
//empty username and password box after submission
$('#username').val('');
$('#password').val('');
$('#loader').hide();
$('#result').fadeIn('slow').prepend(msg);
$('#fadeoutResult').delay(5000).fadeOut('slow');
}
});
}
})
});
</script>
<input
name="username"
type="text"
class="form-control input-lg"
id="username"
/>
<input
name="password"
type="password"
class="form-control input-lg"
id="password"
/>
<div id="loader"></div>
<div id="result"></div>
<button type="submit" id="signin">
Submit
</button>
test.php
<?php
// lets do redirect if username and password is not empty. you can apply the same principle is your submission is successful
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
if ($username != '' amp;amp; $password !=''){
header('Location: success.php');
exit();
}
?>