我创建了一个联系人表单,它被设置为通过mail.php文件发送表单内容。目前,它分别通过echo和die在新的空白页面上显示成功/错误消息,但我希望在当前页面上弹出某种通知。
我想使用的解决方案是http://www.sandbox.timbenniks.com/projects/jquery-notice/,但该网站上的演示使用了一个将通知添加到按钮的示例。我需要做的是添加通知来代替echo或die输出消息。这可能吗?
这是我正在使用的mail.php代码。。。
<?php $name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
if (isset($_POST['service'])) {
$service = $_POST['service'];
// $service is an array of selected values
}
$message = $_POST['message'];
$formcontent=" Message received from wwww.jhnormanandsons.co.uk: 'n 'n From: $name 'n Phone: $phone 'n 'n Service required: $service 'n 'n Message: $message";
$recipient = "jasonbradberry@gmail.com";
$subject = "You have a new message from $name";
$mailheader = "From: $email 'r'n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo ("Thank you for your message. We'll be in touch as soon as we can.");
?>
这是表单HTML。。。
<form id="contact-form" method="post" action="mail.php" name="jh_contact">
<input type="text" id="name" name="name" placeholder="Name" required />
<input type="email" id="email" name="email" placeholder="Email" required />
<input type="tel" id="phone" name="phone" placeholder="Phone" required />
<textarea id="message" name="message" placeholder="Message" required ></textarea>
<select name="service">
<option>Service required</option>
<option value="MOT">MOT</option>
<option value="Service / repairs">Service / repairs</option>
<option value="Cars for sale">Cars for sale</option>
<option value="Welding">Welding</option>
<option value="Exhausts">Exhausts</option>
<option value="Tyres">Tyres</option>
<option value="Brakes">Brakes</option>
<option value="Diagnostics">Diagnostics</option>
<option value="Vehicle checks">Vehicle checks</option>
<option value="Courtesy car">Courtesy car</option>
<option value="Advice">Advice</option>
<option value="Other">Other</option>
</select>
<input type="submit" value="Send" id="submit-button" name="submit" />
</form>
谢谢!
我会让表单在禁用JavaScript的情况下工作,然后使用jQuery将表单POST到页面,并以这种方式解析任何正常的成功消息。
<?php
if (isset($_POST['send'])) {
// process form
if ($sent === true) {
$alert_class = 'success';
$alert_test = 'Your enquiry was sent successfully.';
}
else {
$alert_class = 'error';
$alert_text = 'There was an error sending your enquiry.';
}
}
?>
<!DOCTYPE html>
<html>
<body>
<?php if (isset($alert_text)): ?>
<div class="alert <?php echo $alert_class; ?>">
<p><?php echo $alert_text; ?></p>
</div>
<?php endif; ?>
<form action="" method="post" id="contact-form">
<!-- your form -->
</form>
</body>
</html>
然后是jQuery:
(function($) {
$('#contact-form').submit(function() {
$.post($(this).attr('action'), $(this).serialize(), function(response) {
var alert_text = $(response).find('.alert').text();
alert(alert_text);
});
return false;
});
})(jQuery);
希望能有所帮助。
使用Jquery post提交表单。并获得显示为json的通知消息。。。
http://api.jquery.com/jQuery.post/
使用jquery 搜索此行以提交您的表格
"示例:使用ajax请求发送表单数据"。。。
响应时。。写这个代码(取自添加的通知链接u)
jQuery.noticeAdd({text:数据,//ur通知消息停留:真实});