Перенаправление со страницы PHP после публикации jQuery $.ajax

#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();
}


?>