Перенаправление после отправки формы

Как сделать так, чтобы эта форма перенаправляла пользователя на внешний сайт, например, http://amaze.bg/, после того, как пользователь отправил форму с помощью кнопки "Зарегистрироваться" и после того, как форма отправила электронное письмо на адрес antoniya.p@amaze.bg с введенными пользователем данными?

Вот код PHP (contact_process.php):

<?php

usleep(500000);
$to = "antoniya.p@amaze.bg";
$author = "";
$email = "";
$comment = "";
$class = "FORM CONTACT ";

if (isset($_POST['input_name']))
    $author = $_POST['input_name'];
if (isset($_POST['input_email']))
    $email = $_POST['input_email'];
if (isset($_POST['input_class']))
    $class = $_POST['input_class'];
if (isset($_POST['input_message']))
    $comment = $_POST['input_message'];

$sub="Alumni registration recieved - ".$date1;
       $name=$authorlast."< ".$email." >";

    $msg = '';
    if (@mail($to,$sub,$body,"Content-Type: text/html; charset=iso-8859-1"))
        {
            $msg = 'Your registration was sent successfully';
            //echo '<div class="alert success pngfix">'. $msg .'</div>';
        }
        else{
            $msg = 'Email failed to be sent (mail function not work)';
            //echo '<div class="alert error pngfix">'. $msg .'</div>';
        }

    echo $msg;


?>

И вот часть.js:

jQuery.validator.addMethod(
        "math", 
        function(value, element, params) { 
            if (value==='')
                return false;
            return this.optional(element) || value == params[0] + params[1]; 
        },
        jQuery.format("Please enter the correct value for {0} + {1}")
    );
    $('.form-register').validate({
        rules: {
            input_name: {
                minlength: 3,
                required: true
            },
            input_email: {
                required: true,
                email: true
            },
            input_message: {
                minlength: 0,
                required: false
            }
            ,
            submitHandler: function(form) {
            var a=$('.form-register').serialize();
            $.ajax({
                type: "POST",
                url: "contact_process.php",
                data:a,
                complete:function(){
                },
                beforeSend: function() {

                },
                success: function(data){
                    if (data=='success') {
                        $('.form-register').find("input[type=text], textarea").val("");
                        alert('You have successfully registered. Thank you for being active alumni!');
                    } else {
                        alert(data);
                    }
                },
                error : function() {

                }
            });
            return false;
        }
    });


});

Спасибо вам за помощь.

2 ответа

После некоторых экспериментов и помощи от Чарли мне удалось найти, где и что именно добавить в код, чтобы форма отправляла информацию на сервер и перенаправляла пользователя на другой сайт. Изменения должны быть внесены в файл.js с добавлением следующей строки:

location = "http://amaze.bg/"

Но он должен быть добавлен в "else" в файле.js, чтобы "alert" был в "success", чтобы все работало правильно:

success: function(data){
            if (data=='success') {

            alert(data);

            } else {

            location = "http://amaze.bg/"

            }
        },
            error : function() {

            }

В обратном вызове вашего успеха добавьте location = " http://amaze.bg/"

success: function(data) {
    // if you echo "success" in your php script when the mail is sent 
    if (data === 'success') {
        $('.form-register').find("input[type=text], textarea").val("");
        alert('You have successfully registered. Thank you for being active alumni!');
        // Now redirect
        location = "http://amaze.bg"
    } else {
        // if you echo "Some Error Message" from your php script
        alert(data);
    }
},

В конечном счете, вы должны отправлять правильные заголовки из php, чтобы хук успеха в вашем $.ajax срабатывал на коде состояния 200, а хук ошибки срабатывал в вашем $.ajax при обнаружении кода состояния 400–500. Пожалуйста, посмотрите на коды состояния HTTP и отправку правильных заголовков в PHP

Другие вопросы по тегам