Javascript 将不同的PHP验证响应处理到Ajax中,以在警报引导中显示
我有一个通过电子邮件恢复密码的表格。我将输入发送到PHP以执行以下操作:Javascript 将不同的PHP验证响应处理到Ajax中,以在警报引导中显示,javascript,php,html,ajax,twitter-bootstrap,Javascript,Php,Html,Ajax,Twitter Bootstrap,我有一个通过电子邮件恢复密码的表格。我将输入发送到PHP以执行以下操作: 验证{三条不同的验证消息) 如果通过,则返回进程 在AJAX中,一旦收到响应,虽然无效,但它被认为是成功的,因为它已在php中处理 我需要区分每个响应,以便显示适当的警报消息 如果字段输入为空,我想在警报信息消息框中显示它 如果字段输入是无效电子邮件,我想在警报警告消息框中显示它 如果在服务器中找不到字段输入,我想在警报危险消息框中显示它 如果成功,我想在alert success中显示它 $(函数(){ //获取表
php
中处理
我需要区分每个响应,以便显示适当的警报消息
- 如果字段输入为空,我想在
消息框中显示它警报信息
- 如果字段输入是无效电子邮件,我想在
消息框中显示它警报警告
- 如果在服务器中找不到字段输入,我想在
消息框中显示它警报危险
- 如果成功,我想在alert success中显示它
$(函数(){
//获取表单ID///////////////////////////////////////////
变量形式=$(“#恢复形式”);
//获取消息DIV ID///////////////////////////////////////////
var formMessages=$(“#formresults”);
$(表格)。提交(功能(e){
$(“#提交”).prop(“已禁用”,错误);
e、 预防默认值();
var formData=$(form).serialize();
$.ajax({
键入:“POST”,
url:$(form.attr('action'),
数据:formData
})
.完成(功能(响应){
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
$(formMessages)。文本(响应);
//获取表单ID///////////////////////////////////////////
document.getElementById(“RecoveryForm”).reset();
//$(“#重置按钮”)。单击();
})
.失败(功能(数据){
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
如果(data.responseText!=''){
$(formMessages).text(data.responseText);
}否则{
$(formMessages).text('Oops!发生错误,无法发送您的邮件');
}
});
$(“#提交”).removeAttr(“禁用”);
});
});
首先,我们从html开始验证,因为这可能会受到用户的阻碍和操纵,但仍然是一个很好的开始方式
首先,我们将required
属性添加到html中的输入字段中,并更改输入类型
以匹配您期望的数据类型,例如:input type=“email”
隐藏输入不会防止其被篡改,最好也添加Readonly
属性
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<div id="formresults"></div>
<form id="RecoveryForm" method="post" action="exa.php">
<table align="center">
<tr>
<td>
<div class="input-append">
<input type="email" Required name="email" id="email" class="input-xlarge" placeholder="Email" maxlength="100" />
<span class="add-on"><li class="icon-envelope"></li></span>
<p id="mailerror"></p> <!-- This Segment Displays The Validation Rule For Email -->
</div>
</td>
</tr>
</table>
<input type="hidden" Readonly name="token" value="<?=Token::generate();?>" />
<center>
<input type="submit" id="submit" name="Forget" class="btn btn-primary" value="Submit" />
</center>
<script src="ajax/jquery-2.1.0.min.js"></script>
<script src="ajax/app.js"></script>
</form>
</body>
</html>
三分之一的PHP本可以写得更好,但它可能工作得很好:(所以我们暂时不谈这一点。用PHP验证报告不同的响应
.done(函数(响应){
var messageAlert=response.type;
var messageText=response.message;
var alertBox='×;'+messageText+'';
(formMessages.html(alertBox);
请随意编辑我的答案并使其更加准确。我的答案没有解决您的问题吗?@BobbyAxe确实解决了,但我需要在PHP上进行验证,因为我已经在那里生成了代码。如果您感兴趣,我找到了另一种方法来检查它。@BobbyAxe感谢您的帮助和时间
<script>
$(function() {
/*Get FORM ID*/
var form = $('#RecoveryForm');
/*Get MESSAGE DIV ID */
var formMessages = $('#formresults');
/*Email Validation*/
var email_regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var email = $('#email').val();
if (!email.match(email_regex) || email.length == 0) {
$('#mailerror').text("* Please enter a valid email address *");
$("#email").focus();
return false;
}
else if (email.match(email_regex) && email.length >= 5){
$(form).submit(function(e) {
$( "#submit" ).prop( "disabled", false );
e.preventDefault();
var formData = $(form).serialize();
$.ajax({
type: 'POST',
url: $(form).attr('action'),
data: formData
})
.done(function(response) {
if (response.status=='Success'){
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
$(formMessages).text(response.message);
}
else if (response.status=='warning'){
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
$(formMessages).text(response.message);
}
else if (response.status=='danger'){
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
$(formMessages).text(response.message);
}
else if (response.status=='info'){
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
$(formMessages).text(response.message);
}
/*Get FORM ID */
document.getElementById("RecoveryForm").reset();
})
.fail(function(data) {
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
if (data.responseText !== '') {
$(formMessages).text(data.responseText);
} else {
$(formMessages).text('Oops! An error occured and your message could not be sent.');
}
});
$("#submit").removeAttr("disabled");
});
}
});
</script>