繁体   English   中英

联系表格:提交后用户未返回表格

[英]Contact Form: user not returned to the form after Submit

当用户单击联系表单上的“提交”按钮时,成功或错误消息不会显示在联系表单的底部; 相反,该消息以纯格式显示在新的空白页上,然后终止。 用户不会返回到联系表单。 我有联系表的以下三个文件: contactus.html, style.cssemailform.php

emailform php(此php驻留在主机服务器上)包含if ($_POST['submit']) {错误捕获代码。 Contactus.html包含

<form method="post" action="http://www.xxxxxx.com/emailform.php" name="Form" id="Form">

谁能解决这个问题? 提前致谢。

如果在提交表单后您想要将用户发送回上一页,则您的emailform.php文件应包含:

header('Location: ' . $_SERVER['HTTP_REFERER']);

如果要在contactus.html上显示错误消息,可以在URL中添加一个参数,例如contactus.html?error=1 ,您可以在其中捕获错误并将其显示在同一页面中。

或者,您的contactus.html文件可以对emailform.php进行AJAX请求,并在同一页面中显示结果,因此浏览器无需重定向到emailform.php

如果您已包含jQuery,并希望通过AJAX进行POST,请尝试从表单中删除action=... ,让您的头包含jQuery,并将其放在体内的任何位置:

<script type="text/javascript">
$("#submit").on("click",function(){

    var email = $("#email").val();
    var name = $("#name").val();
    var message = $("#message").val();

    $.ajax({
        type: "POST",
        url: "/emailform.php",
        data: { email : email, name : name, message: message }
    }).done(function(msg) {
        //update your message div here
        $("#message").test(msg);
        alert(msg);
    });
});

</script>

从您的emailform.php重定向回contactus.html。 如果您希望对表单做出反应,请将contactus设为php文件(如果未将Web服务器配置为使用html文件中的php)。

从emailform.php重定向时,您可以通过url将get参数发送给联系人。 With header('Location: ' . $_SERVER['HTTP_REFERER'] . '?success=true');

在您的contactus.php中,您可以检查是否有参数等。

if(isset($_GET['success'])){
    if($_GET['success'] === 'true'){
        echo 'it worked fine';
    else{
        echo 'something did not work';
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM