我正在尝试保留当前提交表单的页面。但不知怎的,它不起作用。我在互联网上发现了一些代码的和平,并把它放在一起。
这是process.php文件:
<?php
// Get Data
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$phone = strip_tags($_POST['phone']);
$subject = strip_tags($_POST['subject']);
$message = strip_tags($_POST['message']);
// Send Message
mail( "email@domain.com", "Contact Form testttt",
"Name: $name\nEmail: $email\nPhone: $phone\nWebsite: $url\nMessage: $message\n",
"From: Forms testtttttttt" );
?>
其余的代码,html和javascripts可以在jsfiddle上找到: jsfiddled code
$(function(){
$('#contact').validate({
submitHandler: function(form) {
$(form).ajaxSubmit({
url: 'process.php',
success: function() {
$('#contact').hide();
$('#contact-form').append("<p class='thanks'>thanks test.</p>")
}
});
}
});
});
忘记提及现在发生的事情。我被重定向到process.php页面。
答案 0 :(得分:9)
使用jQuery.ajax()功能提交表单而不刷新页面。你需要做这样的事情:
<强> test.php的:强>
<script type="text/javascript" src="jquery-version.js"></script>
<script type="text/javascript" src="ajaxform.js"></script>
<form action='process.php' method='post' class='ajaxform'>
<input type='text' name='txt' value='Test Text'>
<input type='submit' value='submit'>
</form>
<强> process.php:强>
<?php
// Get your form data here in $_POST
?>
<强> ajaxform.js 强>
jQuery(document).ready(function(){
jQuery('.ajaxform').submit( function() {
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
data : $(this).serialize(),
success : function( data ) {
alert('Form is successfully submitted');
},
error : function(){
alert('Something wrong');
}
});
return false;
});
});
答案 1 :(得分:5)
您需要返回a 204 HTTP status或使用JavaScript而不是通过提交表单来发出请求(这称为Ajax,并且有许多关于该主题的教程从jQuery tutorials page链接)。 / p>
答案 2 :(得分:-1)