• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHPCMS模型字段单选复选只能填写不能使用SQL语句查询

PHPCMS模型字段单选复选只能填写不能使用SQL语句查询

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了PHPCMS,模型字段单选复选,不能使用SQL语句查询等相关知识,希望对您有所帮助

不知道各位有没有在使用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['title'].'|'.$value['id']."\r\n";        }        $_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 title FROM table_name WHERE ..."</span></td></tr>

效果展示:

(1)字段新增与编辑


PHPCMS模型字段单选复选只能填写不能使用SQL语句查询


(2)内容管理


PHPCMS模型字段单选复选只能填写不能使用SQL语句查询


方案二:与方案一相同原理,不直接填写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['title'].'|'.$value['id']."\r\n";        }        $_POST['setting']['options'] = rtrim($option_str);        $_POST['setting']['sql'] = $setting['options'];    }}



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHPCMSV9单次最多只能上传10个附件的解决方法
  • PHPcms远程图片本地化增加图片类型和后缀的方法
  • phpcms显示验证码出错怎么办?
  • PHPCMS V9后台复制指定文章到同模型的指定栏目中
  • wordpress和phpcms该怎么选择
  • PHPcms v9调用热门文章的两种方法
  • PHPCMS如何判断该栏目是否含有子栏目?
  • phpcms文章如何筛选分类?
  • PHPcms v9 去掉编辑器上传图片的宽高样式
  • PHPCMS邮箱不能发送邮件?

相关文章

  • 2022-04-29Photoshop设计超酷的扁平化软件图标
  • 2022-04-29利用滤镜及动作制作暗调金属质感立体字
  • 2022-04-29PHP调用今天的日期几月星期几
  • 2022-04-29五步搞定Laravel Migrations的使用
  • 2022-04-29Windows7安装OpenSSH服务的步骤详解(亲测有效)
  • 2022-04-29Phpcms V9后台登录地址修改方法
  • 2022-04-29zblog php 忘记密码怎么办
  • 2022-04-29微信小程序中如何实现子向父传参(页面通信)
  • 2022-04-29PS打造纸张撕边效果
  • 2022-04-29帝国CMS内容字段域名替换函数

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • vue简单实现转盘抽奖
    • 一定要收藏的5个后台管理系统的前端框架
    • Laravel中Kafka的使用详解
    • 织梦DedeCMS时隔多年,终于更新了!(DedeCMSV5.7版下载)
    • 苹果CMS批量替换字段内容
    • 帝国CMS内容字段域名替换函数
    • 纯CSS使图片有放大效果代码
    • 织梦CMS如何转换其他程序
    • Thinkphp5中是如何自定义全局异常
    • PhotoShop CS6制作梦幻高光流线花体艺术字效教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有