перенаправить в PHP контактную форму - PullRequest
0 голосов
/ 19 января 2020

Я создал контактную форму PHP на WordPress, которая перенаправляет пользователя в зависимости от его / ее выбранного региона.

Я использовал 'www.google.com' в качестве тестового URL.

Однако форма перенаправляется на страницу пользовательской темы, которую я вместо этого построил на WP.

Где я ошибаюсь?

Пожалуйста, найдите код ниже:

<html>
    <head>
        <title> Meal Planner </title>
    </head>
    <body>
    <?php
    function checkregion($Region)
    {
        SWITCH ($Region) {
            case "North":
                header('location:https://www.google.com/');
                break;
            case "South":
                header('location:https://www.google.com/');
                break;
            case "East":
                header('location:https://www.google.com/');
                break;
            case "West":
                header('location: https://www.google.com/');
                break;
        }
    }

    checkregion($Region);
    ?>
        <form action="<?= get_template_directory_uri() ?>/custompage1.php " method="POST">
            <p>Name</p> <input type="text" name="name">
            <p>Email</p> <input type="text" name="email">
            <p>Phone</p> <input type="text" name="phone">
            <p>Dropdown Box</p>
            <select name="Region" size="1">
                <option value="North">North</option>
                <option value="South">South</option>
                <option value="East">East</option>
                <option value="West">West</option>
            </select>
            <br/>
            <input type="submit" value="SUBMIT"><input type="reset" value="CLEAR">
        </form>
    </body>
</html>

Ответы [ 2 ]

0 голосов
/ 19 января 2020
<?php
    if(isset($_POST['submit'])){
      $region = $_POST['Region'];
       switch ($region ) {
            case 'North': $url = 'https://www.google.com/'; break;
            case 'South': $url = 'https://www.google.com/'; break;
            case 'East':  $url = 'https://www.google.com/'; break;
            case 'West':  $url = 'https://www.google.com/'; break;
        }
     if(!empty($url)){
       header('Location: '+ $url);
     }
    }
?>
<html>
    <head>
        <title> Meal Planner </title>
    </head>
    <body>
        <form action="<?php the_permalink(); ?>" method="post">

            <p>Name</p> <input type='text' name='name'>
            <p>Email</p> <input type='text' name='email'>
            <p>Phone</p> <input type='text' name='phone'>
            <p>Dropdown Box</p>

            <select name='Region' size='1'>
                <option value='North'>North
                <option value='South'>South
                <option value='East'>East
                <option value='West'>West
            </select>
            <br />
            <input type='submit' name="submit" value='SUBMIT'><input type='reset' value='CLEAR'>
        </form>
    </body>
</html>
0 голосов
/ 19 января 2020

Чтобы вызвать функцию checkRegion на той же странице, что и форма, тогда, если эта страница не является customepage1.php, вам нужно удалить действие из формы и передать переменную POST Region в качестве входного параметра для вашей функции. Поскольку вы вызываете функцию header, вы должны вызывать эту функцию до того, как будет сгенерирован любой контент HTML (если вы не включили output buffering)

<?php

    function checkregion( $Region ) {
        switch ($Region) {
            case 'North': header('Location: https://www.google.com/'); break;
            case 'South': header('Location: https://www.google.com/'); break;
            case 'East': header('Location: https://www.google.com/'); break;
            case 'West': header('Location: https://www.google.com/'); break;
        }
    }
    if( !empty( $_POST['Region'] ) ) checkregion( $_POST['Region'] );
?>
<html>
    <head>
        <title> Meal Planner </title>
    </head>
    <body>
        <form method='POST'>

            <p>Name</p> <input type='text' name='name'>
            <p>Email</p> <input type='text' name='email'>
            <p>Phone</p> <input type='text' name='phone'>
            <p>Dropdown Box</p>

            <select name='Region' size='1'>
                <option value='North'>North
                <option value='South'>South
                <option value='East'>East
                <option value='West'>West
            </select>
            <br />
            <input type='submit' value='SUBMIT'><input type='reset' value='CLEAR'>
        </form>
    </body>
</html>
...