我如何验证我的表单在PHP通过JQuery Ajax调用

How do I validate my form within PHP via JQuery Ajax call?

本文关键字:PHP 通过 JQuery 调用 Ajax 表单 我的 何验证 验证      更新时间:2023-09-26

我如何验证我的代码在PHP没有得到错误消息定义在ajax定义在main.js?

注意:Chrome控制台返回:XMLHttpRequest无法加载文件:///C:/Documents/Mini%20Revision%20Projects/Project%20Website%203/ajax.php。收到无效响应。因此,不允许访问原点'null'。

下面是我的代码:

main.html

<!DOCTYPE HTML>
<html>
    <head>  
        <script type="text/javascript" src="C:'Documents'jQuery'jquery2.js"></script>
    </head> 
    <body>
        <ul id="info1">
                <li>Put anything in the field below.</li>
        </ul>
        <form id="form1">
                <input type="text" name="field1" id="field1">
                <input type="submit" name="submit" id="submit" value="Submit Form">
        </form>
        <script type="text/javascript" src="main.js"></script>  
    </body>
</html>

main.js

$(document).ready(function() {
    $("#form1").submit(function( event ) {
        event.preventDefault();
        //alert("happy");
        $.ajax({
            type: 'POST',
            url: 'ajax.php',
            data: $(this).serialize(),
            dataType: 'json',
            success: function (data) {
                console.log(data);
                $("#info1").html(data.msg);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("Status: " + textStatus);
                alert("Error: " + errorThrown);
            }
        });
    });
});

ajax.php

<?php
    class ajaxValidate {
            function formValidate() {
                    //Put form elements into post variables (this is where you would sanitize your data)
                    $field1 = @$_POST['field1'];
                    //Establish values that will be returned via ajax
                    $return = array();
                    $return['msg'] = '';
                    $return['error'] = false;
                    //Begin form validation functionality
                    if (!isset($field1) || empty($field1)){
                            $return['error'] = true;
                            $return['msg'] .= '<li>Error: Field1 is empty.</li>';
                    }
                    //Begin form success functionality
                    if ($return['error'] === false){
                            $return['msg'] = '<li>Success Message</li>';
                    }
                    //Return json encoded results
                    return json_encode($return);
            }
    }
    $ajaxValidate = new ajaxValidate;
    echo $ajaxValidate->formValidate();
?>

首先,验证PHP是否没有返回警告或严重错误。将此代码插入到代码的顶部。如果PHP返回隐藏错误,成功数据值将为空。

ini_set("display_errors", "On");
error_reporting(E_ALL);

PHP错误报告手册

PHP运行时显示错误

我认为如果你在php中返回一个JSON数组,你需要调用一个数组。

$("#info1").html(data['msg']);

尝试返回post值来验证$_POST是否为空:

return json_encode($_POST);

如果直接定义第一行,则不需要定义空数组。

//$return = array();
$return['msg'] = '';

您需要有PHP服务器,以便PHP脚本的工作。安装类似XAMPP (windows)或MAMP (linux)的程序