Как перенаправить пользователя на другую страницу, используя JavaScript в PHP? - PullRequest
0 голосов
/ 26 августа 2018

Я хочу перенаправить пользователя на другую страницу только после отображения сообщения об успехе.Приведенный ниже код перенаправляет на другую страницу, даже если страница обновляется без отправки каких-либо данных.

Фрагмент кода

<?php
// We will store our status message later
$message = '';

// Let's check form submitted
if( isset( $_POST['action'] ) && $_POST['action'] == 'submit' ) {

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $phone = $_POST['number'];

    $message_text = $_POST['address'];


        if (isset($_POST['action'])) 
        {   

            // Validate required fields 
            if( $name == '' || $email == '' || $message_text == '' ){
                $message = "<p class=\"error\">Please fill out all required fields.</p>";  
            }


            // send email after validation
            else {

                // Email will be sent at this email
                $mailto = 'nepstarditsolutions@gmail.com';

                // Let's create html email format 
                // (You can use html in this email format)

                // Email headers
                $headers = "From: " . strip_tags( $email ) . "\r\n";
                $headers .= "Reply-To: ". strip_tags( $email ) . "\r\n";
                $headers .= "MIME-Version: 1.0\r\n";
                $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

                // Email body
                $message = "<html><body>";
                $message .= "<h3>Contact Info: </h3>";
                $message .= "<p><strong>Name: </strong> ". strip_tags( $name ) . "</p>\r\n";
                $message .= "<p><strong>Email: </strong> ". strip_tags( $email ) . "</p>\r\n";

                $message .= "<p><strong>Contact Number: </strong> ". strip_tags( $phone ) . "</p>\r\n";
                $message .= "<p><strong>Alternate Email: </strong> ". strip_tags( $_POST['altemail'] ) . "</p>\r\n";
                $message .= "<p><strong>Hosting Package: </strong> ". strip_tags( $_POST['cradio'] ) . "</p>\r\n";

                $message .= "<p><strong>Address: </strong>". strip_tags( $message_text ) . "</p>\r\n";
                $message .= "</body></html>";



                // Email subject
                $subject = "Contact Info from ".$name;

                // Send email
                $mail_status = @mail( $mailto, $subject, $message, $headers );

                if( $mail_status ){
                    $message = '<div class="alert alert-success">Quotation submitted Successfully ! </div>';   
                }
                else {
                    $message = '<div class="alert alert-danger">Error in sending the Quotation ! </div>';  
                }

            }
        }   
}
?>

Мне нужна помощь в 2вещи

  1. Сообщение об успехе должно отображаться в течение 2 секунд (до перенаправления).
  2. Как перенаправить с помощью JS в php?

1 Ответ

0 голосов
/ 26 августа 2018

Стандартный "ванильный" способ JavaScript для перенаправления страницы

Вы можете использовать приведенный ниже код для перенаправления пользователя после кода отправки формы.

if( $mail_status ){
    echo "
        <script>
            setTimeout(function() {
                window.location = 'http://www.example.com/newlocation';
            }, 2000);
        </script>
    ";
}

MDN Web Docs о том, как setTimeout работает

Надеюсь, это поможет!

...