Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP验证在实现AJAX后不起作用_Javascript_Php_Jquery_Ajax_Validation - Fatal编程技术网

Javascript PHP验证在实现AJAX后不起作用

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中显示错误消息。但是,在使用AJAX防止页面重新加载时,PHP验证不再显示消息,而是在后台运行。有人知道这是为什么吗?如何使PHP验证再次工作?谢谢你的帮助

正如您所看到的,验证错误应该显示在$email\u error中

jQuery 添加此选项以防止提交时重新加载页面后,PHP错误消息不再显示

简单PHP错误:

<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;
        }