mar*_*ark 2 php forms contact echo
我正在创建一个PHP联系表单,我所拥有的只是一个小问题,我用的PHP脚本,当电子邮件发送出来时,一个新的"谢谢"页面被调用.所以实际的网站是联系表格消失但我不想发生这种情况.
如果发送按钮被点击,我想留在我的网站上,显示一个空的联系表格,也许在联系表格下面只有一行,说"谢谢......".
我怎么能做到这一点?是否有任何代码片段可以向我解释我必须包含到我的HTML和我的PHP文件?希望它会...以下是我的PHP现在如何结束.
// send Email
if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))
{
// if email was successfully send
echo 'Thank you for your Email. We will get in touch with you very soon.';
}
Run Code Online (Sandbox Code Playgroud)
编辑
@FreekOne
目前我正在使用你的代码稍加修改,因为我想让谢谢你或错误面板滑出来并让文本淡入.脚本接受我的代码(因为它仍在工作)但实际上我看不出文本实际上已经消失了.我看过滑动面板的样本,文字渐渐消失.所以我做的似乎是一种错误的编码.
如果您需要,请在此查看代码:
http://jsbin.com/ohuya3
也许您可以指出我正确的方向.当然,周围的所有人都会感谢你的帮助.
设置表单以将数据发送到同一页面,让脚本监听提交.就像是:
contact.php
<?php
// Check if form was previously submitted
if(isset($_POST['myFormSubmitted'])) {
// Do your form processing here and set the response
$response = 'Thank you for your Email. We will get in touch with you very soon.';
}
?>
<!-- HTML here -->
<?php
if (isset($response)) { // If a response was set, print it out
echo $response;
}
?>
<form method="POST" action="contact.php">
<!-- Your inputs go here -->
<input type="submit" name="myFormSubmitted" value="Submit">
</form>
<!-- More HTML here -->
Run Code Online (Sandbox Code Playgroud)
UPDATE
考虑到提供的额外信息,我个人会通过AJAX使用jQuery.首先,设置表单和容器以获得结果:
HTML
<form id="myForm" method="POST" action="contact.php">
<input type="text" id="name" name="name">
<input type="text" id="email" name="email">
<input type="text" id="message" name="message">
<input type="submit" name="myFormSubmitted" value="Submit">
</form>
<div id="formResponse" style="display: none;"></div>
Run Code Online (Sandbox Code Playgroud)
然后设置处理提交数据的PHP脚本并输出响应.
PHP(contact.php)
<?php
if(isset($_POST['myFormSubmitted'])) {
// Do your form processing here and set the response
echo 'Thank you for your Email. We will get in touch with you very soon.';
}
?>
Run Code Online (Sandbox Code Playgroud)
最后,jQuery脚本将提交您的表单而不离开页面并将结果插入到结果容器中(具有良好且简单的淡入效果).
jQuery的
$("#myForm").submit(function() {
$.post('contact.php', {name: $('#name').val(), email: $('#email').val(), message: $('#message').val(), myFormSubmitted: 'yes'}, function(data) {
$("#formResponse").html(data).fadeIn('100');
$('#name, #email, #message').val(''); /* Clear the inputs */
}, 'text');
return false;
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 !