dna*_*irl 6 php validation jquery
我有一组表单验证规则,我用jquery 验证器插件编写.由于我必须在服务器端重复相同的验证,我认为不必在PHP中重写我的规则会很好.如果规则很简单,field=>rulename=>value我可以将它们存储为JSON并将它们解码为PHP数组.不幸的是,一些规则依赖于其他字段或具有计算值.
有没有field=>rulename=>value=function{}从javascript/jquery转换为PHP 的通用方法?或者,有没有办法在服务器端运行jquery,然后将结果传递给PHP?
一些规则的示例:
        rules: {
            title: {required:true, minlength:5},
            description: {required:true, minlength:5},
            event_type_id: "required",
            ev_start: { dateCan: true, required: true},
            ev_end:{ dateCan: true,
                     minDate: "input[name='ev_start']"
            },
            ev_starttime:{
                required: 
                    function(element){
                        return $("input[name='allday']:unchecked")
                    },
                time: true,
                maxTime: {
                    depends: function(element) {
                                return $("input[name='ev_endtime']:filled")
                                       && $("input[name='ev_start']").valid()   
                                       && $("input[name='ev_end']").valid()
                                       && $("input[name='ev_start']").val()==$("input[name='ev_end']").val()
                            },
                    param: "input[name='ev_endtime']"
                }
            },
       //etc...
       }
我认为您走在正确的道路上,但我认为您不会像您期望的那样容易。我不知道有哪个预构建函数可以为此特定目的准确解析和重组数据集。
如果我要这样做,我会将我的验证集形成一个多维关联数组,该数组在 PHP 中保存必要的信息。
之后,您将必须决定如何与 JavaScript 对话。如果您在页面中内联加载 JS,我将仅使用 PHP 循环遍历 PHP 数组并根据需要构建 JS 规则。如果您使用外部函数调用,则 JSON 对数组进行编码,并将其传递给翻译器函数,该函数解析 JSON 数组并将其重新格式化为 JQuery 期望的格式。
编辑以澄清:
您可以走另一个方向,从 JS 传递到 PHP,但是按照我建议的方式进行操作将使您能够轻松地换出其他 JS 或 JQuery 库,并且只需更改您的翻译器即可。从 JS 到 PHP,如果您决定更改 JS 验证器,则必须更改两侧。如果您打算进行多网站或多开发人员编码,那么最好只学习通用的 PHP 数组配置并为 JS 编写翻译器。