Php 使用AJAX发布表单数据
您好,我正在尝试对我的联系人表单进行一些验证,在使用AJAX发送数据之后,验证工作正常,并且以HTML的本机方式发送,但是当我尝试使用AJAX时,索引仍在刷新,AJAX的指标不起作用……这是我的代码,问题出在哪里 jquery:Php 使用AJAX发布表单数据,php,jquery,ajax,forms,post,Php,Jquery,Ajax,Forms,Post,您好,我正在尝试对我的联系人表单进行一些验证,在使用AJAX发送数据之后,验证工作正常,并且以HTML的本机方式发送,但是当我尝试使用AJAX时,索引仍在刷新,AJAX的指标不起作用……这是我的代码,问题出在哪里 jquery: $('form').submit(function (e) { var illegalchars=/[^a-zA-Zא-ת\ ]/; var phonechars=/[^0-9\-]/; var mailfilter=/^([a-zA-Z0-9_
$('form').submit(function (e)
{
var illegalchars=/[^a-zA-Zא-ת\ ]/;
var phonechars=/[^0-9\-]/;
var mailfilter=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var errorDiv = $(".form_error");
var fullName = $("input[name='full_name']").val();
var phone = $("input[name='phone']").val();
var email = $("input[name='email']").val();
var text = $("textarea[name='text']").val();
var time = $("textarea[name='time']").val();
var robCheck = $("textarea[name='rob_check']").val();
if ( fullName == '' || phone == '' || email == '' || text == '') {
errorDiv.html('אחד השדות ריק, וודא כי כל השדות מלאים');
errorDiv.fadeIn('slow');
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
};
if ( fullName.length < 4 || phone.length < 4 || email.length < 4 || text.length < 4) {
errorDiv.html("באחד מהשדות הזנת מס' תווים נמוך מהרצוי");
errorDiv.fadeIn('slow');
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
};
if ( phonechars.test(phone) ){
errorDiv.html("הזנת תויים לא חוקיים בשדה של הטלפון");
errorDiv.fadeIn('slow');
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
}
if ( !mailfilter.test(email) ){
errorDiv.html("הזנת תויים לא חוקיים בשדה של האימייל");
errorDiv.fadeIn('slow');
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
}
if ( illegalchars.test(fullName) ){
errorDiv.html("הזנת תויים לא חוקיים בשדה של השם המלא");
errorDiv.fadeIn('slow');
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
}
$.ajax({
url: "send_contact.php",
type: "POST",
data: ("#contact_form").serialize(),
timeout:5000,
dataType: "php",
async:true, // TRUE=Continue scripting, FALSE=Stop Everything
beforeSend:function(){
$('#loader').css({
"display":"block"
})
return false;
},
error: function(){
errorDiv.html('משהו השתבש');
errorDiv.fadeIn('slow');
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
},
success: function(msg){
if(msg == 'problem'){
errorDiv.html('משהו השתבש');
errorDiv.fadeIn('slow');
}
else{
errorDiv.css({"background":"rgba(60,196,0,1)"})
errorDiv.html('עודכן בהצלחה');
errorDiv.fadeIn('slow');
}
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
},
complete: function(){
setTimeout("$('.form_error').fadeOut(1000);", 3000);
return false;
}
});
e.preventDefault();
});
$('form')。提交(函数(e)
{
var illegalchars=/[^a-zA-Zא-ת\];
var phonechars=/[^0-9\-]/;
var mailfilter=/^([a-zA-Z0-9\.\-])+\@([a-zA-Z0-9\-])+\)+([a-zA-Z0-9]{2,4})+$/;
var errorDiv=$(“.form_error”);
var fullName=$(“输入[name='full_name']”)val();
var phone=$(“输入[name='phone']”)val();
var email=$(“输入[name='email']”)val();
var text=$(“textarea[name='text']”)val();
var time=$(“textarea[name='time']”)val();
var robCheck=$(“textarea[name='rob_check']”)val();
如果(全名=“”| |电话=“”| |电子邮件=“”| |文本=“”){
errorDiv.html(';
errorDiv.fadeIn(“慢”);
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
};
if(fullName.length<4 | | | phone.length<4 | | | email.length<4 | | text.length<4){
errorDiv.html(“ב;
errorDiv.fadeIn(“慢”);
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
};
if(电话字符测试(电话)){
errorDiv.html(“הזתתים㪙אחׯשש㪡㜐㪠ן”);
errorDiv.fadeIn(“慢”);
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
}
如果(!mailfilter.test(电子邮件)){
errorDiv.html(“הזתתים㪙אחׯשש㪡איׯש㪡אמיל”);
errorDiv.fadeIn(“慢”);
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
}
if(非法字符测试(全名)){
errorDiv.html(“הזתתים㪙אחׯשש㪚שץ㪚㪠”);
errorDiv.fadeIn(“慢”);
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
}
$.ajax({
url:“send_contact.php”,
类型:“POST”,
数据:(“#联系方式”).serialize(),
超时:5000,
数据类型:“php”,
async:true,//true=继续编写脚本,FALSE=停止所有操作
beforeSend:function(){
$('#loader').css({
“显示”:“块”
})
返回false;
},
错误:函数(){
errorDiv.html(“משההשתבש”);
errorDiv.fadeIn(“慢”);
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
},
成功:功能(msg){
如果(msg=='problem'){
errorDiv.html(“משההשתבש”);
errorDiv.fadeIn(“慢”);
}
否则{
css({“背景”:“rgba(60196,0,1)”})
errorDiv.html(';
errorDiv.fadeIn(“慢”);
}
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
},
完成:函数(){
setTimeout(“$('.form_error').fadeOut(1000);”,3000);
返回false;
}
});
e、 预防默认值();
});
HTML:
<form id="contact_form" method="post" action="send_contact.php">
<div class="right">
<input type="text" name="full_name" placeholder="שם מלא:" /><br />
<input type="tel" name="phone" placeholder="טלפון:" /><br />
<input type="text" name="email" placeholder="אימייל:" /><br />
<input type="hidden" name="time" value="<?php echo ($date); ?>" />
<input type="hidden" name="rob_check" value="" />
</div>
<div class="left">
<textarea name="text"></textarea><br />
<input type="submit" name="submit" value="שלח!" />
</div>
<div class="breaker"></div>
<div class="form_error"></div>
</form>
您在下一行中缺少$符号
数据:(“#联系方式”).serialize()
这应该是-
数据:$(“#联系方式”).serialize(),请提供比“它不起作用”更多的信息。你试图用什么方法来解决这个问题?您的服务器端代码是否被命中?控制台中是否有错误?以此类推……控制台向我显示了“状态代码:302已找到”的问题,提交操作的值未发布到页面,如果我们查看php代码,我将其作为发送邮件的条件:else if(isset($\u post['submit']),你现在建议做什么?谢谢,这是一个问题,但现在控制台显示状态代码有问题:302已找到,提交操作的值未发布到页面,如果我们查看php代码,我将其作为发送邮件的条件:否则如果(isset($_post['submit')),你现在建议做什么?
<?php
if ( $_POST['rob_check'] != ""){
echo 'you have a problem with your form!!';
return false;
die();
}
else if( isset( $_POST['submit'] ) ){
$name = trim( $_POST["full_name"] );
$email = trim( $_POST["email"] );
$phone = trim( $_POST["phone"] );
$text = trim( $_POST["text"] );
$time = $_POST["time"];
//print_r($_POST);die();
$to = 'adirkandel@gmail.com';
$subject = "פורטפוליו";
//$headers = '';
$message = "
<html>
<head lang='he'>
<title>$subject</title>
</head>
<body dir='rtl'>
<h2>נושא ההודעה: $subject</h2>
<p>$text</p>
<hr />
<table>
<tr>
<th>שם השולח</th>
<th>טלפון השולח</th>
<th>אימייל השולח</th>
<th>נכתב בתאריך</th>
</tr>
<tr>
<td>$name</td>
<td>$phone</td>
<td>$email</td>
<td>$time</td>
</tr>
</table>
</body>
</html>
";
$message = str_replace("\'", ''', str_replace('\"', '"', $message)); //remove slash before qoutes
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// More headers
//$headers .= 'From: <webmaster@example.com>';
//$headers .= 'Cc: myboss@example.com' . "\r\n";
mail($to,$subject,$message,$headers);
}
header("Location: index.php");
?>