首页 > 教程 >
PHPCMS模型字段单选复选只能填写不能使用SQL语句查询
2023-02-15教程围观次
简介不知道各位有没有在使用phpcms过程中发现,建模型字段时单选复选的值只能手写,不能从其他表获取这个问题;在这个方面,五指CMS更胜一筹,在字段的时候有“自定义SQL”这一选项。只要略加修改,也可以实现同样的功能。解决方案:方案一:(1)在phpcms/modules/content/sitemodel_field.php文件下,add方法和edit方法中增加(注意看一下代码,要增加在给$sett
不知道各位有没有在使用phpcms过程中发现,建 模型字段时 单选 复选的值只能手写,不能从其他表获取这个问题;在这个方面,五指CMS更胜一筹,在字段的时候有“自定义SQL”这一选项。只要略加修改,也可以实现同样的功能。
解决方案:
方案一:
(1)在phpcms/modules/content/sitemodel_field.php文件下,add方法和edit方法中增加(注意看一下代码,要增加在给$setting重复赋值之前)
$field_type = $_POST['info']['formtype'];$setting = $_POST['setting'] ? $_POST['setting'] : '';if ($field_type == 'box' && !empty($setting)) { // 如果是选项 // 判断选项值是否是SQL语句 if(strpos($setting['options'],'|') == false){ $options = $this->db->query($setting['options']); $option_arr = $this->db->fetch_array(); $option_str = ""; foreach ($option_arr as $key => $value) { $option_str .= $value[' '].'|'.$value['id']."rn"; } $_POST['setting']['options'] = rtrim($option_str); $_POST['setting']['sql'] = $setting['options']; }}
(2)在phpcms/modules/content/fields/box/field_edit_form.inc.php文件下修改文本框显示值,并在新增和编辑页面增加提醒语句
<tr> <td width="100">选项列表</td> <td><textarea name="setting[options]" rows="2" cols="20" id="options" style="height:100px;width:200px;"><?php if(!empty($setting['sql'])) { echo $setting['sql']; } else { echo $setting['options']; } ?></textarea><br><span style="color: grey;">如果需要其他表数据,直接填写SQL语句,格式按照"SELECT `filed1` as id,`field2` as FROM table_name WHERE ..."</span></td></tr>
效果展示:
(1)字段新增与编辑
(2)内容管理
方案二:与方案一相同原理,不直接填写SQL,将SQL整理成参数形式
(1)在 phpcms/modules/content/fields/box/field_edit_form.inc.php 文件下,增加是否是SQL语句的选项按钮
<tr> <td width="100">是否为SQL</td> <td> <input type="radio" name="setting[is_sql]" value="1" <?php if($setting['is_sql']) echo 'checked';?> /> 是 <input type="radio" name="setting[is_sql]" value="0" <?php if(!$setting['is_sql']) echo 'checked';?> /> 否 </td></tr><tr> <td width="100">选项列表</td> <td><textarea name="setting[options]" rows="2" cols="20" id="options" style="height:100px;width:400px;"><?php if(!empty($setting['sql'])) { echo $setting['sql']; } else { echo $setting['options']; } ?></textarea> </td> </tr>
(2)在phpcms/modules/content/sitemodel_field.php文件下,add方法和edit方法中增加(注意看一下代码,要增加在给$setting重复赋值之前)
$setting = $_POST['setting'] ? $_POST['setting'] : '';if ($field_type == 'box' && !empty($setting)) { // 如果是选项 // 判断选项值是否是SQL语句 if($setting['is_sql'] == 1){ $options = explode("n",$setting['options']); $sql = "SELECT ".$options[1]." FROM ".$options[0]; if (!empty($options[2])) $sql .= " WHERE ".$options[2];//条件 if (!empty($options[3])) $sql .= " ORDER BY ".$options[3];//排序 if (!empty($options[4])) $sql .= " LIMIT ".$options[4];//条数限制 $option = $this->db->query($sql); $option_array = $this->db->fetch_array(); $option_str = ""; foreach ($option_array as $key => $value) { $option_str .= $value[' '].'|'.$value['id']."rn"; } $_POST['setting']['options'] = rtrim($option_str); $_POST['setting']['sql'] = $setting['options']; }}
下载链接:网站源码/小程序源码/网站模板下载
下载排行
- 最新版去水印小程序源码/基于WordPress的短视频去水印小程序源码
- 某鱼最近卖的很火蓝色版微信去水印小程序源码+接口
- 帝国CMS仿管理资源吧资料下载网站模板源码/下载会员+积分付费下载功能自动采集资源网站源码
- 最新短视频去水印小程序源码/带流量主/外卖CPS系统/批量解析/修改MD5
- 文案馆头像壁纸小程序源码+带后台
- 苹果CMS二次元慕乔JOELEO模板/精美UI手机版影视模板
- 最新去水印小程序源码分享/无需后台/对接接口/支持全网去水印功能
- 知识付费小程序源码升级版知识付费变现小程序源码+卡密-独立后台版本
- 新版多功能去水印工具微信小程序源码下载+带流量主功能
- 爱看小说网源码全站带数据打包/ThinkPHP内核小说网站源码