1

我有一个使用 HTML 定位在页面上的表单,如果用户完成了表单,那么他们会收到一条 PHP 消息来感谢他们。因为表单是用 <form id="formIn">CSS 定位的,所以 PHP 文本现在位于错误的位置,有没有人知道如何定位它以便 PHP 回显文本嵌套到表单中?我试图在 PHP 中包含代码,即

<div id=\"text\">

但没有喜悦。

到目前为止使用的代码是:

<?php 
echo "* - All sections must be complete"."<br><br>";

$contact_name = $_POST['contact_name'];
$contact_name_slashes = htmlentities(addslashes($contact_name));
$contact_email = $_POST['contact_email'];
$contact_email_slashes = htmlentities(addslashes($contact_email)); 
$contact_text = $_POST['contact_text'];
$contact_text_slashes = htmlentities(addslashes($contact_text)); 

if (isset ($_POST['contact_name']) && isset ($_POST['contact_email']) && isset ($_POST['contact_text'])) 

{

if (!empty($contact_name) && !empty($contact_email) && !empty($contact_text)){


$to = '';
$subject = "Contact Form Submitted";
$body = $contact_name."\n".$contact_text;
$headers = 'From: '.$contact_email;

if (@mail($to,$subject,$body,$headers))

{
echo "Thank you for contacting us.";
}else{
echo 'Error, please try again later';
}

echo "";
}else{

echo "All sections must be completed.";
}
4

2 回答 2

1

这样做的一个好方法是创建一个 div 用于在表单页面中显示消息并从 php 脚本返回到表单页面,包括form.html?error=emailform.html?success返回到 url。然后使用 javascript,您可以识别何时发生这种情况并显示一条消息或其他消息。

如果您需要一些代码示例,请发表评论。

编辑:假设您的 php 脚本检测到电子邮件字段未填写,因此它将返回到带有 url 中的变量的表单网页:

<?php
if(!isset($_POST["email"]){
    header("location:yourformfile.html?error=email")
}
?>

然后,在您的表单网页中,您必须添加一些 javascript 来捕获 URL 中的变量并在页面中显示一条消息:
Javascript:

function GetVars(variable){
    var query = window.location.search.substring(1);  //Gets the part after '?'
    data = query.split("=");  //Separates the var from the data
    if (typeof data[0] == 'undefined') {
        return false; // It means there isn't variable in the url and no message has to be shown
    }else{
        if(data[0] != variable){
            return false; // It means there isn't the var you are looking for.
        }else{
            return data[1];  //The function returns the data and we can display a message
        }
    }
}

在这种方法中,我们得到的data[0]是 var 名称和data[1]var 数据。您应该像这样实现该方法:

if(GetVars("error") == "email"){
    //display message 'email error'
}else if(GetVars("error") == "phone"){
    //dislpay message 'phone error'
}else{
    // Display message 'Success!' or nothing
}

最后,为了显示消息,我建议使用 HTML 和 CSS 创建一个 div 并使用 jQuery 为其显示和消失设置动画。或者只是显示一个警报alert("Email Error");

于 2013-11-12T17:27:41.763 回答
0

只需在表单之前或之后创建一个<div>并在其上放置 IF SUBMIT 条件。喜欢,

<?php
if(isset($_POST['submit']))
{ ?>

<div>
   <!-- Your HTML message  -->
</div>

<?php } ?>

<form>

</form>
于 2013-11-12T17:11:32.153 回答