Javascript 使用PHP创建jQuery验证规则
我正在使用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,而且它不解析 使用
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
检索参数如何比在发送到浏览器之前首先使用PHPecho
将这些参数放入页面更安全
无论您如何构建页面,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>