Javascript PHP验证在实现AJAX后不起作用
我的代码验证表单中的输入,并在满足条件时在div class=error中显示错误消息。但是,在使用AJAX防止页面重新加载时,PHP验证不再显示消息,而是在后台运行。有人知道这是为什么吗?如何使PHP验证再次工作?谢谢你的帮助 正如您所看到的,验证错误应该显示在$email\u error中 jQuery 添加此选项以防止提交时重新加载页面后,PHP错误消息不再显示 简单PHP错误:Javascript PHP验证在实现AJAX后不起作用,javascript,php,jquery,ajax,validation,Javascript,Php,Jquery,Ajax,Validation,我的代码验证表单中的输入,并在满足条件时在div class=error中显示错误消息。但是,在使用AJAX防止页面重新加载时,PHP验证不再显示消息,而是在后台运行。有人知道这是为什么吗?如何使PHP验证再次工作?谢谢你的帮助 正如您所看到的,验证错误应该显示在$email\u error中 jQuery 添加此选项以防止提交时重新加载页面后,PHP错误消息不再显示 简单PHP错误: <div class="error"><?= $email_error ?></
<div class="error"><?= $email_error ?></div>
当您仅提交表单时,根据您的条件验证失败,然后设置$email_error,当加载页面时,服务器解释错误并打印它
当您通过AJAX提交时
它检查错误验证,如果设置了fail$email_error,则不会解释页面未重新加载。因此,当您需要通过ajax提交而不是设置错误时,回显它,它将正常工作简单PHP错误:
<div class="error"><?= $email_error ?></div>
当您仅提交表单时,根据您的条件验证失败,然后设置$email_error,当加载页面时,服务器解释错误并打印它
当您通过AJAX提交时
它检查错误验证,如果设置了fail$email_error,则不会解释页面未重新加载。因此,当您需要通过ajax提交,而不是设置错误时,请将其回显,这样可以很好地工作,因为您已经阻止了页面加载,所以您无法看到在服务器上呈现并在前端显示的错误 要实现这一点,您需要编辑jquery代码
$( document ).ready(function() {
$(".form_pro").submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "php/interuni_process.php",
data: $(this).serialize(),
success: function(data) {
},
error: function(data, errorThrown)
{
$('.error').html(errorThrown);
}
});
});
});
由于您已阻止页面加载,因此无法看到在服务器上渲染并在前端显示的错误 要实现这一点,您需要编辑jquery代码
$( document ).ready(function() {
$(".form_pro").submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "php/interuni_process.php",
data: $(this).serialize(),
success: function(data) {
},
error: function(data, errorThrown)
{
$('.error').html(errorThrown);
}
});
});
});
您需要修改PHP以返回包含成功响应或错误详细信息的响应,然后在Javascript成功函数中,您需要解析响应,如果是错误响应,则需要相应地更新DOM。您需要修改PHP以返回包含成功响应或错误的响应详细信息,然后在Javascript成功函数中,您需要解析响应,如果是错误响应,则需要相应地更新DOM。1您需要在服务器端回显错误消息,从服务器获取响应并将其附加到该div HTML: htm_page.php AJAX:html_page.php
1您需要在服务器端回显错误消息,从服务器获取响应并将其附加到该div HTML: htm_page.php AJAX:html_page.php
只是Ajax不能与PHP验证一起工作,因为Ajax错误部分意味着Ajax方面没有通过PHP验证!!!因此,如果PHP验证失败,它将不会转到错误部分,您如何仍然可以使提交返回为false,并在成功部分的JS和Ajax中执行类似操作:
success: function(data) {
if(data.error)
{
alert(data.error);
return false;
}
只是Ajax不能与PHP验证一起工作,因为Ajax错误部分意味着Ajax方面没有通过PHP验证!!!因此,如果PHP验证失败,它将不会转到错误部分,您如何仍然可以使提交返回为false,并在成功部分的JS和Ajax中执行类似操作:
success: function(data) {
if(data.error)
{
alert(data.error);
return false;
}
您需要在服务器端回显错误消息,并从服务器获取响应,然后将其附加到该divah,可能就是这样。您需要在服务器端回显错误消息,并从服务器获取响应,然后将其附加到该divah,可能就是这样。谢谢!回答得很好。还有一个问题,如果有多个验证字段,您将如何识别数据?谢谢。您只需使用if条件在ajax success@LordGoderickThanks中进行标识!回答得很好。还有一个问题,如果有多个验证字段,您将如何识别数据?谢谢。您只需使用if条件在ajax success@LordGoderick中进行标识
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email_error='';
if (empty($_POST["E-mail"])) {
$email_error = "E-mail is required";
} else {
$email = test_input($_POST["E-mail"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$email_error = "Invalid email format";
}
}
echo $email_error;
}
$( document ).ready(function() {
$(".form_pro").submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "destination.php",
data: $(this).serialize(),
success: function(data) {
if(data.trim() !='')
{
$('.error').html('<h1>'+data+'</h1>');
}
},
error: function() {
}
});
});
});
success: function(data) {
if(data.error)
{
alert(data.error);
return false;
}