Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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创建jQuery验证规则_Javascript_Php_Jquery_Json_Jquery Validate - Fatal编程技术网

Javascript 使用PHP创建jQuery验证规则

Javascript 使用PHP创建jQuery验证规则,javascript,php,jquery,json,jquery-validate,Javascript,Php,Jquery,Json,Jquery Validate,我正在使用jQuery验证插件。根据,回调用于发送额外数据(即用户名) 工作完美!但是现在,我不想硬编码myObj对象,而是使用PHP来创建它。请注意,我下面的示例脚本非常简单,没有涉及验证插件 一种方法是直接创建JavaScript,就像我为myObj1所做的那样。然而,我被告知,由于安全性和故障排除问题,不应该使用PHP动态创建JavaScript。相反,我应该将JSON从服务器传递到客户端 因此,我尝试为myObj2这样做,但是,显然JSON不能包含JavaScript,而且它不解析 使用

我正在使用jQuery验证插件。根据,回调用于发送额外数据(即用户名)

工作完美!但是现在,我不想硬编码
myObj
对象,而是使用PHP来创建它。请注意,我下面的示例脚本非常简单,没有涉及验证插件

一种方法是直接创建JavaScript,就像我为
myObj1
所做的那样。然而,我被告知,由于安全性和故障排除问题,不应该使用PHP动态创建JavaScript。相反,我应该将JSON从服务器传递到客户端

因此,我尝试为myObj2这样做,但是,显然JSON不能包含JavaScript,而且它不解析

使用PHP动态创建jQuery验证规则的最佳方法是什么

<?php
$myID='myID';
if(isset($_GET['task'])) {
    header('Content-Type: application/json');
    exit("{'data':{'getValue':function() {return $( '#{$myID}' ).val();}}}");
}
else {
    ?>

<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js" type="text/javascript"></script>
        <script>
        console.log(window,location);
            <?php echo("var myObj1={'data':{'getValue':function() {return $( '#{$myID}' ).val();}}}");?>

            $(function() {
                alert(myObj1.data.getValue());

                $.get(location.href+'?task=getJSON',function (myObj2){
                    alert(myObj2.data.getValue());
                    },'json');

            });
        </script>
    </head>
    <body>
        <input id="myID" type="text" value="Hello" />
    </body>
</html>

    <?php
}
?>

“使用PHP动态创建jQuery验证规则的最佳方法是什么?”

没有“最好”的方法。由于PHP在服务器上构建页面(包括JavaScript),而jQuery验证插件只在浏览器中运行,所以我不理解您的问题。使用JavaScript的
ajax
检索参数如何比在发送到浏览器之前首先使用PHP
echo
将这些参数放入页面更安全

无论您如何构建页面,JavaScript代码在进入浏览器时都会/应该看起来完全相同

<script>
    $(function() {
        $( "#myform" ).validate( <?php echo .... ;?> );
    });
</script>

$(函数(){
$(“#myform”).validate();
});

我得问问。为什么需要使用php来创建它?从我的角度看,这没有多大意义。我有自己的PHP类,它在服务器端验证数据。它还能够创建jQuery验证插件对象。这样,我就不必维护两组验证脚本。因此,首先只需使用
echo
来构造具有正确值的页面。因此,您觉得使用PHP动态创建JS是可以的?@user1032531,为什么不可以呢?所有PHP都是在服务器上执行的,在将页面发送到浏览器之前,在服务器上完全构建页面。从浏览器的角度来看,它与静态HTML文件没有什么不同。我一直使用PHP动态创建jQuery,并且我有一个特定的类来创建表单验证规则和消息,因此根据经验,我知道它工作得很好。在我感到头疼时,是否可以展示一下您是如何构造它的?@MikeMiller,没有更多的东西可以向您展示,代码“snippets”特性不适用于PHP。这个答案一般解释了在构建页面时如何使用PHP为JavaScript编写对象文本。如果你有问题,那么你可以得到特别的帮助。
<script>
    $(function() {
        $( "#myform" ).validate( <?php echo .... ;?> );
    });
</script>