帝国cms实现产品参数等多条件存储并检索的实现方案
时间:2023年10月20日
/来源:网络
/编辑:佚名
很多朋友会使用帝国cms来制作企业站,有时会需要用到产品参数的检索,而这个产品参数往往会有多种,例如某产品转速,有1000、2000、3000等多种,甚至每个产品的转速都不同,有的1200、1400、1600等等。
如产品转速固定,我们可以使用复选字段来做,添加产品时进行勾选,但我们这里产品参数都不相同。我们就只能考虑对每个产品单独存储了。
思路是将产品参数存储于一个字段中,采用分隔符分割,这样我们在添加编辑产品时只需要在存储数据前将提交的表单数据组合后存储数据库,读取时再将数据分割输出即可。
操作方式如下,首先我们添加一个字段,字段名 rongliang ,字段标识 容量 ,字符类型 varchar ,输入表单显示元素 单行文本框,

添加后表单变成如下样式:

下面修改该字段,将输入表单替换html代码填写为如下,用来实现多数据的分割输出,以及输入框的添加:
<script type="text/javascript" src="/scripts/jquery.js"></script>
<span id="rongliangcon">
<?php
$r[rongliang]=trim($r[rongliang],"|");
$morefr=explode('|',$r[rongliang]);
$mfcount=count($morefr);
for($mfi=0;$mfi<$mfcount;$mfi++)
{
?>
<input name="rongliang[]" type="text" value="<?=$morefr[$mfi]?>" size="">
<?php
}
if(!$r[rongliang]){
?>
<input name="rongliang[]" type="text" value="" size="">
<?php
}
?>
</span>
<button onclick="addrongliang()" type="button">添加一个</button>
<script>
function addrongliang(){
$("#rongliangcon").append('<input name="rongliang[]" type="text" value="" size=""> ');
}
</script>
这样我们再看表单,就变成了下面的样子:

但这只是实现了前端部分,我们还需要写程序的处理部分,在增加和修改函数中,插入sql数据之前添加如下代码,用于将表单提交的数据组合存储,为了防止程序出错,我们进行了空值判断。
if($add['rongliang']){
$rongliang=$add['rongliang'];
$rlcon='|';
for($i=0;$i<count($rongliang);$i++){
$rlcon.=$rongliang[$i];
}
$add['rongliang']=$rlcon;
}
数据存储好了,我们还要修改/e/action/ListInfo.php文件的结合项逻辑,来实现多条件下的精准检索,在其中添加如下代码:
if($andr[$i]=='rongliang'){
$listandf.=$doandor.$andr[$i]." like '%|".$andval."|%'";
}
这样就大功告成了,前台制作检索框后即可检索。
如产品转速固定,我们可以使用复选字段来做,添加产品时进行勾选,但我们这里产品参数都不相同。我们就只能考虑对每个产品单独存储了。
思路是将产品参数存储于一个字段中,采用分隔符分割,这样我们在添加编辑产品时只需要在存储数据前将提交的表单数据组合后存储数据库,读取时再将数据分割输出即可。
操作方式如下,首先我们添加一个字段,字段名 rongliang ,字段标识 容量 ,字符类型 varchar ,输入表单显示元素 单行文本框,

添加后表单变成如下样式:

下面修改该字段,将输入表单替换html代码填写为如下,用来实现多数据的分割输出,以及输入框的添加:
<script type="text/javascript" src="/scripts/jquery.js"></script>
<span id="rongliangcon">
<?php
$r[rongliang]=trim($r[rongliang],"|");
$morefr=explode('|',$r[rongliang]);
$mfcount=count($morefr);
for($mfi=0;$mfi<$mfcount;$mfi++)
{
?>
<input name="rongliang[]" type="text" value="<?=$morefr[$mfi]?>" size="">
<?php
}
if(!$r[rongliang]){
?>
<input name="rongliang[]" type="text" value="" size="">
<?php
}
?>
</span>
<button onclick="addrongliang()" type="button">添加一个</button>
<script>
function addrongliang(){
$("#rongliangcon").append('<input name="rongliang[]" type="text" value="" size=""> ');
}
</script>
这样我们再看表单,就变成了下面的样子:

但这只是实现了前端部分,我们还需要写程序的处理部分,在增加和修改函数中,插入sql数据之前添加如下代码,用于将表单提交的数据组合存储,为了防止程序出错,我们进行了空值判断。
if($add['rongliang']){
$rongliang=$add['rongliang'];
$rlcon='|';
for($i=0;$i<count($rongliang);$i++){
$rlcon.=$rongliang[$i];
}
$add['rongliang']=$rlcon;
}
数据存储好了,我们还要修改/e/action/ListInfo.php文件的结合项逻辑,来实现多条件下的精准检索,在其中添加如下代码:
if($andr[$i]=='rongliang'){
$listandf.=$doandor.$andr[$i]." like '%|".$andval."|%'";
}
这样就大功告成了,前台制作检索框后即可检索。

新闻资讯 更多
- 【帝国cms教程】帝国CMS模板变量$GLOBALS[navclassid]用法分析04-03
- 【帝国cms教程】鲜为人知帝国CMS内容页调用上一篇和下一篇的精华方法汇总04-03
- 【帝国cms教程】怎么快速找出帝国CMS数据库配置文件路径及迁移网站后修改技巧!04-03
- 【帝国cms教程】帝国CMS模板$GLOBALS[navclassid]用法详解04-03
- 【帝国cms教程】帝国cms 7.5版列表页分页样式修改笔记04-02
- 【帝国cms教程】解决帝国CMS搜索页面模板不支持灵动标签和万能标签的方法04-02
- 【帝国cms教程】帝国CMS只备份栏目和模板的方法04-02
- 【帝国cms教程】帝国CMS怎样删除清空数据库记录?04-02
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法