提交PHP $ _POST表单时需要阻止打开新页面。

时间:2014-08-02 17:55:38

标签: php forms post

所以基本上我正在尝试创建一个表单,用户可以输入他们的姓名,电子邮件,消息等,点击提交,信息被编译并发送到我的电子邮件地址。单击“提交”后会发生什么,您将被重定向到新页面joeyorlando.me/php/index.php。

点击“提交”后我想要的是在提交按钮旁边弹出一个小框,说“#34;感谢您提交的内容" (或类似的东西),页面不会被重定向,而是与页面保持同一页面。

如何阻止提交按钮将您发送到此新页面?任何建议将不胜感激!!

<?php
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $company = $_POST['company'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $human = $_POST['human'];

    $from = 'From: $firstname $lastname'; 
    $to = 'joey@joeyorlando.me'; 
    $subject = 'You Have a New Form Submission!';
    $body = "From: $firstname $lastname\n Company: $company Phone: $phone \n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit']) {
        if ($firstname != '' && $lastname != '' && $email != '' && $message != '') {
            if ($human == '14') {
                if (mail ($to, $subject, $body, $email)) { 
                    echo '<p>Your message has been sent!</p>';
                } else { 
                    echo '<p>Something went wrong, go back and try again!</p>'; 
                }
            } else if ($_POST['submit'] && $human != '14') {
                echo '<p>You answered the question incorrectly!</p>';
            }
        } else {
        echo '<p>You need to fill in all required fields!!</p>';
    }
  }
  ?>

3 个答案:

答案 0 :(得分:2)

您可以使用AJAX将表单发送到另一个脚本并等待显示错误或成功消息的响应。

jquery ajax form submit

<script>
$(document).ready(function() {
    $('#my-form').submit(function() {

        $.ajax({
            url: 'script.php',
            method: 'post,'
            /* TODO: add data */
        }).done(function(response) {
            alert(response);
        });

        return false;
    });
});
</script>

<form id="my-form" method="post" action="script.php">
    <input type="submit" value="submit">
<form>

答案 1 :(得分:0)

正如Jake建议的那样,你可以使用Ajax,或者你可以在同一个php文件中编写表单。然后,在完成所有验证步骤后,如果一切正常,则回显成功;)

if(isset($_POST['submit']))
{
//the code you've posted + sucess message
}

<form name="name_of_form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
//Input form
</form>

答案 2 :(得分:0)

在这种情况下,AJAX会很好。 AJAX将在不刷新的情况下提交您的表单,您可以在成功提交时显示相应的消息。