OpenCart关于时间组件、输入框的验证

PHP应用系统 10/02 阅读 1010 views次 人气 0
摘要:

在OpenCart页面会有一些关于时间的组件,但是OpenCart只对这些时间组件进行了判空验证,却没有对时间的范围进行验证,以下说几种方法对这些时间范围进行后台验证。

时间组件验证

第一种方法:

如果页面只有一个data类型的组件,可以通过类型对这个组件进行处理。

找到工程目录下的\www\opencart2.0.1.1\catalog\controller\checkout下的cart.php这文件,找到add()方法。

OpenCart关于时间组件、输入框的验证.jpg

如图所示,在add()方法中foreach中把添加红线区域代码,也就是下边一个判断。

if($product_option['type'] == 'date'){//如果为data日期时的处理方法,这部分判断可根据需求来写 }

蓝线区域中用黑色线画出的那句话,是把处理后要显示的提示的信息显示到前台页面相应的组件下边,前台页面提示如下图所示

$json['error']['option'][$product_option['product_option_id']]= "要提示的信息";

OpenCart关于时间组件、输入框的验证2.png

第二种方法:

如果页面有多个data类型组件就没办法只通过类型来判断了,这时候我们需要通过名字来判断,这个名字就是我们在option里配置的插件的名称。也是在页面是显示出来的名称。

如下图所示:红线部分为opention在页面上显示的名称。

OpenCart关于时间组件、输入框的验证3.png

同样找到工程目录下的\www\opencart2.0.1.1\catalog\controller\checkout下的cart.php这文件,找到add()方法。

OpenCart关于时间组件、输入框的验证4.png

同样在foreach下进行判断处理,具体操作如图中红线框框里,现在对红线内代码进行解释。

if($product_option['name'] == 'endData'){}

if($product_option['name'] == 'starData'){}

这两个判断是通过opention的名称来判断,'endData' ,'starData'这两个变量和页面显示的名称需要一致。

判断里边的内容是自己对时间组件根据自己的要求进行处理,然后把提示信息显示到页面上,这部分和第一种方法一样。

第三种方法:

这种方法是在时间组件上进行限制,opencart用的时间组件是datetimepicker这个jquery时间组件,可以在选择时间的时候直接进行限制,让用户只能选择一段时间内的时间,这种方法,我没有研究具体的如何操作。


文本框输入的信息的验证限制

文本框验证方法和时间组件验证的第一种和第二种方法是一样,在同样的方法和同样的位置加入判断。

第一种方法时把时间验证中if($product_option['type'] == 'date'){}这个判断中的date类型改成text,也就是if($product_option['type']== text){}其他的一样。

第二种方法和时间验证时一样的,都是name为option中设置的名字。


评论

该文章不支持评论!

分享到: