Контактная форма - Перейти на страницу

У меня есть контактная форма, которая отправляет мне электронное письмо, когда кто-то заполняет поля и нажимает «отправить».

Теперь мне нужно что-то вроде страницы с благодарностью, на этой странице мне нужно загрузить фрагмент кода, чтобы отслеживать его.

Это код, который у меня есть сейчас:

<form id = "contact-form" method = "POST" action = "contact.php" role = "form" class = "wpcf7">

А это кнопка:

<div class = "col-md-12">
   <a href = "#" onclick = "ga('send', 'event', 'contact', 'button-verstuur')";>
      <input type = "submit" class = "btn btn-success btn-send wpcf7-submit" value = "Verstuur">
   </a>
</div>

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

Надеюсь, кто-нибудь сможет мне помочь с этим.

Редактировать:

Это код PHP

    // configure
$from = 'Contactform <[email protected]>';
$sendTo = '<[email protected]>';
$subject = 'New message';
$fields = array('name' => 'Naam', 'surname' => 'Achternaam', 'phone' => 'Telefoonnummer', 'email' => 'Email', 'message' => 'Bericht'); // array variable name => Text to appear in email
$okMessage = 'Your message is sent successfully!';
$errorMessage = 'Error, please try again later.';

// let's do the sending

if (isset($_POST['url']) && $_POST['url'] == '') try
{
    $emailText = "Uw heeft een nieuw bericht\n=============================\n";

    foreach ($_POST as $key => $value) {

        if (isset($fields[$key])) {
            $emailText .= "$fields[$key]: $value\n";
        }
    }

    mail($sendTo, $subject, $emailText, "From: " . $from);

    $responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
    $responseArray = array('type' => 'danger', 'message' => $errorMessage);
}

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    $encoded = json_encode($responseArray);

    header('Content-Type: application/json');

    echo $encoded;
}
else {
    echo $responseArray['message'];
}

HTML-форма:

<form id = "contact-form" method = "POST" action = "contact.php" role = "form" class = "wpcf7">

       <div class = "messages"></div>

           <div class = "controls">

                <div class = "form-group">
                    <label for = "form_name"><span class = "required">*</span> Naam:</label>
                    <span class = "wpcf7-form-control-wrap your-name">
                        <input id = "form_name" type = "text" name = "name" class = "wpcf7-text" required = "required" data-error = "Uw naam is verplicht">
                    </span>
                    <div class = "help-block with-errors"></div>
                </div>

                <div class = "form-group">
                    <label for = "form_email"><span class = "required">*</span> E-mail:</label>
                    <span class = "wpcf7-form-control-wrap your-email">
                        <input id = "form_email" type = "email" name = "email" class = "wpcf7-text" required = "required" data-error = "Een geldig e-mailadres is verplicht">
                    </span>
                    <div class = "help-block with-errors"></div>
                </div>

                <div class = "form-group">
                    <label for = "form_phone"><span class = "required">*</span> Telefoonnummer:</label>
                    <span class = "wpcf7-form-control-wrap your-url">
                        <input id = "form_phone" type = "text" name = "phone" class = "wpcf7-text">
                    </span>
                    <div class = "help-block with-errors"></div>
                </div>

                <div class = "form-group">
                    <label for = "form_message"><span class = "required">*</span> Bericht:</label>
                    <span class = "wpcf7-form-control-wrap your-message">
                        <textarea id = "form_message" name = "message" class = "wpcf7-textarea" rows = "4" required = "required" data-error = "U moet een bericht invullen"></textarea>
                    </span>
                    <div class = "help-block with-errors"></div>
                </div>

                <div class = "form-group antispam">
                    <label for = "form_phonee"><span class = "required">*</span> Veld leeg laten:</label>
                    <span class = "wpcf7-form-control-wrap your-url">
                        <input id = "form_phonee" type = "text" name = "url" class = "wpcf7-text">
                    </span>
                    <div class = "help-block with-errors"></div>
                </div>

                <div class = "col-md-12"><a href = "#" onclick = "ga('send', 'event', 'contact', 'button-verstuur')";>
                   <input type = "submit" class = "btn btn-success btn-send wpcf7-submit" value = "Verstuur"></a>
                </div>

            </div>

   </form>

Что ты пробовал? Вы публикуете сообщения с помощью Ajax? Где находится PHP-код, который получает опубликованную форму? Пожалуйста, добавьте весь соответствующий код и информацию. Глядя на класс формы, я предполагаю, что вы используете Wordpress и Contact Form 7?

Magnus Eriksson 20.09.2018 09:34

Привет, @MagnusEriksson, я добавил код PHP выше. Я попытался вставить код тега в сообщение об успешном выполнении, но не знаю, как поместить в него javascript.

n00bly 20.09.2018 11:40

вы можете разместить html-форму?

User123456 20.09.2018 11:50

@BRjava Да, добавил :)

n00bly 20.09.2018 14:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
72
1

Ответы 1

Привет, лучший вариант - проверить, пуста ли каждая переменная. Если есть ошибки, загрузите html с ошибками, иначе продолжайте свой код Бывший:

        $form_nameErr = $form_emailErr = $form_phoneErr = $form_messageErr = $form_phoneeErr = "";
        if (isset($_POST['url']) && $_POST['url'] == '') try
        {
            $emailText = "Uw heeft een nieuw bericht\n=============================\n";

            if (!empty($_POST['form_name'])){
                $emailText .= $_POST['form_name']."\n";
            }else{
                $form_nameErr = "Form Name required";
            }

            if (!empty($_POST['form_email'])){
                $emailText .= $_POST['form_email']."\n";
            }else{
                $form_emailErr = "Email Text required";
            }
        }
if (!empty($form_nameErr) && !empty($form_emailErr) && !empty($form_phoneErr) && !empty($form_messageErr) )){
     mail($sendTo, $subject, $emailText, "From: " . $from);
//TO redirect
header("Location: http://www.yourwebsite.com/thankyou.php"); 
exit();

    $responseArray = array('type' => 'success', 'message' => $okMessage);
}else{
            //load you html with error variables
}

ваш html должен содержать

                <div class = "form-group">
                    <label for = "form_name"><span class = "required">*</span> Naam:</label>
                    <span class = "wpcf7-form-control-wrap your-name">
                        <input id = "form_name" type = "text" name = "name" class = "wpcf7-text" required = "required" data-error = "Uw naam is verplicht">
                    </span>
    <span class = "error">* <?php echo $nameErr;?></span>
  <br><br>
                </div>

определить стиль ошибки См .: https://www.w3schools.com/php/php_form_required.asp

Спасибо за ответ, но я думаю, что есть небольшое недопонимание. Форма уже работает и проверяет, пусто ли поле, единственное, что мне нужно, чтобы перенаправить страницу на другую страницу после успеха :)

n00bly 21.09.2018 14:55

Я обновил ответ, используйте перенаправление после отправки электронной почты

User123456 28.09.2018 08:30

Если это правильный ответ, не могли бы вы принять ответ?

User123456 04.10.2018 07:40

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