帝国cms实现产品参数等多条件存储并检索的实现方案

2021-02-1317:27:32网站建设与开发Comments1,563 views字数 1418阅读模式

帝国cms来制作企业站,有时会需要用到产品参数的检索,而这个产品参数往往会有多种,例如某产品转速,有1000、2000、3000等多种,甚至每个产品的转速都不同,有的1200、1400、1600等等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

如产品转速固定,我们可以使用复选字段来做,添加产品时进行勾选,但我们这里产品参数都不相同。我们就只能考虑对每个产品单独存储了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

思路是将产品参数存储于一个字段中,采用分隔符分割,这样我们在添加编辑产品时只需要在存储数据前将提交的表单数据组合后存储数据库,读取时再将数据分割输出即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

操作方式如下,首先我们添加一个字段,字段名 rongliang ,字段标识 容量 ,字符类型 varchar ,输入表单显示元素 单行文本框,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

帝国cms实现产品参数等多条件存储并检索的实现方案文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

添加后表单变成如下样式:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

帝国cms实现产品参数等多条件存储并检索的实现方案文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

下面修改该字段,将输入表单替换html代码填写为如下,用来实现多数据的分割输出,以及输入框的添加:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

  1. <script type="text/javascript" src="/scripts/jquery.js"></script>
  2. <span id="rongliangcon">
  3. <?php
  4. $r[rongliang]=trim($r[rongliang],"|");
  5. $morefr=explode('|',$r[rongliang]);
  6. $mfcount=count($morefr);
  7. for($mfi=0;$mfi<$mfcount;$mfi++)
  8. {
  9. ?>
  10. <input name="rongliang[]" type="text" value="<?=$morefr[$mfi]?>" size="">
  11. <?php
  12. }
  13. if(!$r[rongliang]){
  14. ?>
  15. <input name="rongliang[]" type="text" value="" size="">
  16. <?php
  17. }
  18. ?>
  19. </span>
  20. <button onclick="addrongliang()" type="button">添加一个</button>
  21. <script>
  22. function addrongliang(){
  23.     $("#rongliangcon").append('<input name="rongliang[]" type="text" value="" size=""> ');
  24. }
  25. </script>

这样我们再看表单,就变成了下面的样子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

帝国cms实现产品参数等多条件存储并检索的实现方案文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

但这只是实现了前端部分,我们还需要写程序的处理部分,在增加和修改函数中,插入sql数据之前添加如下代码,用于将表单提交的数据组合存储,为了防止程序出错,我们进行了空值判断。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

  1. if($add['rongliang']){
  2.     $rongliang=$add['rongliang'];
  3.     $rlcon='|';
  4.     for($i=0;$i<count($rongliang);$i++){
  5.         $rlcon.=$rongliang[$i];
  6.     }
  7.     $add['rongliang']=$rlcon;
  8. }

数据存储好了,我们还要修改/e/action/ListInfo.php文件的结合项逻辑,来实现多条件下的精准检索,在其中添加如下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

  1. if($andr[$i]=='rongliang'){
  2.     $listandf.=$doandor.$andr[$i]." like '%|".$andval."|%'";
  3. }

这样就大功告成了,前台制作检索框后即可检索。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

帝国cms实现产品参数等多条件存储并检索的实现方案文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/20956.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/cms/20956.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定