代码之家  ›  专栏  ›  技术社区  ›  dnagirl

jquery到php转换器?

  •  6
  • dnagirl  · 技术社区  · 16 年前

    我有一组用jquery编写的表单验证规则 validator 插件。因为我必须在服务器端重复相同的验证,所以我认为不用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...
           }
    
    4 回复  |  直到 16 年前
        1
  •  3
  •   Shane    16 年前

    我认为你走的是正确的道路,但我认为你不会像你期望的那样容易找到它。我不知道是否有一个预构建的函数可以准确地解析和修改数据集以达到这个特定的目的。

    如果我要这样做,我会将我的验证集形成多维关联数组,其中包含php中的必要信息。

    之后,您将不得不决定如何与javascript对话。如果您在页面中内联加载js,我将只使用php循环遍历php数组,并根据需要构建js规则。如果您使用的是外部函数调用,那么json将对数组进行编码,并将其传递给一个转换函数,该转换函数将解析json数组并将其重新格式化为jquery所期望的格式。

    编辑以澄清:

    您可以从另一个方向,从js传递到php,但是按照我建议的方式执行,您可以轻松地交换掉其他js或jquery库,只需更改您的翻译程序。从js到php,如果您决定更改js验证器,则必须同时更改两个方面。如果你打算做多网站或多开发人员编码,最好只是学习一个普通的php数组配置和编写js的翻译程序。

        2
  •  1
  •   nickf    16 年前

    我建议做相反的事情:将一些基于php的验证函数转换为javascript函数。自动转换的函数不会像手工编码的函数那样灵活,因此也不会像手工编码的函数那样通用或强大,而且您真的希望最好是在服务器端。最糟糕的情况是,如果您在php-js验证中遇到问题,用户会在被告知电子邮件地址错误之前往返于服务器。

        3
  •  1
  •   Josef Sábl    16 年前

    我认为你所要做的(javascript到php的代码转换)不是很系统,我怀疑你会找到现成的解决方案。

    这种方法怎么样:

    1. 为表单中应该包含验证的字段创建一些配置。
    2. 创建一个php函数,生成html+javascript表单,包括基于配置的验证。
    3. 创建一个基于配置验证表单输入的php函数。
        4
  •  0
  •   Donny Kurnia    16 年前

    由于验证规则非常简单,您可以编写自己的规则并将其保存为函数。只需让它接受参数中的值,然后返回true或false。

    在接收form submit的php代码中,只需将fields值传递给验证函数,并检查其结果是真是假。

    后端验证非常重要,因为可以很容易地关闭基于javascript的验证。

    推荐文章