2014-08-27 160 views
1

我试图在我的索引页面中添加一个表单,以便当您点击提交时,它会在页面重新加载时自动返回到表单。现在,如果页面上有任何错误,它会在窗体上方显示它们,并给出一点感谢信息。当PHP表单提交时自动跳转到HTML锚点

我目前有index.html页面如下:

<?php 
    include "check.php"; 
?> 
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    Name:<br/> <input type="text" name="name" value="<?php echo $_POST['name']; ?>" size="30" /><br/><br/> 
    Email Address:<br/> <input type="text" name="email" value="<?php echo $_POST['email']; ?>" size="30"/> <br/><br/> 
    Company Name:<br/> <input type="text" name="companyName" value="<?php echo $_POST['companyname']; ?>" size="30" /> <br/><br/> 
    Message:<br/> 
    <textarea style="resize: none;" name="message" rows="5" cols="30"><?php echo $_POST['message']; ?></textarea> 
    <br/> 
    <input type="submit" name="Submit" /> 
</form> 

当我提交将通过check.php文件运行,并确认所有的数据还是不错的页面。如果满足所有条件,它应该返回以下If/Then语句。

if (!$errors) { 
    $mail_to = '[email protected]'; 
    $subject = 'New Mail from Form Submission'; 
    $message = 'From: ' . $_POST['name'] . "\n"; 
    $message .= 'Email: ' . $_POST['email'] . "\n"; 
    $message .= 'Company Name: ' . $_POST['companyname'] . "\n"; 
    $message .= "Message:\n" . $_POST['message'] . "\n\n"; 
    mail($mail_to, $subject, $message); 

    echo "Thank you for your email!<br/><br/>"; 
    $_POST = array(); //Clear form after submit 

} else { 
    echo '<div style="color: red">' . $errors . '<br/></div>'; 
} 

反正是有在“谢谢”或“错误”的回声,它会自动把人回落到联系表格添加自动功能?

我希望我解释了我想要做的正确。如果没有,请让我知道,我会尽力澄清一点。

+0

表单中的行动加入“#锚名”的伎俩......还是我失去了一些东西? – 2014-08-27 15:52:25

回答

7

添加一个ID的形式和锚追加到表单的动作URL

<form method="post" id="myform" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>#myform">

+0

不知道身份证诀窍:-) – 2014-08-27 16:01:12

+0

工作!非常感谢你。 – Mizex 2014-08-27 17:46:53

+1

你可以标记这是正确的答案,然后请:) – 2014-08-29 19:14:42