织梦自定义表单如何实现检索功能?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 织梦建站 正文
  1. 创建自定义表单:在后台设计你想要收集的字段。
  2. 在前台页面调用表单:让访客能够看到并填写表单。
  3. 检索和管理表单数据:在后台查看、筛选、导出用户提交的数据。

第一步:创建自定义表单

这是所有工作的基础,你需要在织梦后台定义好要收集哪些信息。

织梦 自定义表单 检索
(图片来源网络,侵删)
  1. 登录织梦后台:使用你的管理员账号登录。

  2. 进入自定义表单管理

    • 在左侧菜单栏中找到 【核心】 -> 插件】 -> 【自定义表单】
  3. 添加新的自定义表单

    • 点击右上角的 【增加自定义表单】 按钮。
  4. 配置表单字段

    织梦 自定义表单 检索
    (图片来源网络,侵删)
    • 名称:给你的表单起一个容易识别的名字,产品需求反馈”、“在线报名”、“人才招聘”等,这个名字主要方便你在后台管理。
    • 表单提示:这个字段通常可以留空,或者填写一些对整个表单的说明。
    • 数据表:这是最重要的部分,织梦会根据你设置的表单字段,自动创建一个数据表来存储数据,表名通常为 dede_sysaddplus 加上一个数字。通常你不需要手动修改它,保持默认即可。
    • 字段管理
      • 【增加自定义表单】 页面的下半部分,就是字段管理区域。
      • 点击 【增加字段】
      • 你会看到一个字段配置界面,需要填写以下信息:
        • 字段名:英文,用于数据库存储。name, tel, email, company一旦设置,尽量不要修改
        • 字段类型:根据你的需求选择,常用类型有:
          • varchar:单行文本,用于姓名、公司、主题等。
          • text:多行文本,用于留言内容、详细描述等。
          • int:整数,用于年龄、人数等。
          • datetime:日期时间,用于提交时间、预约日期等(这个字段通常由系统自动生成,你不需要手动添加)。
          • float:浮点数,用于价格、分数等。
          • box:复选框,用于多个选项。
          • radio:单选按钮,用于二选一或多选一。
          • select:下拉列表,用于多个固定选项。
        • 字段说明:在前台表单中显示给用户的提示文字,请输入您的姓名”、“请选择性别”。
        • 默认值:(可选)可以设置一个默认值。
        • 是否为空:勾选此项表示该字段可以不填,不勾选则必须填写。
      • 重复此步骤,添加所有你需要的字段,姓名电话邮箱、、所在城市(下拉框)等。
  5. 保存表单

    • 所有字段添加完毕后,点击页面底部的 【保存】【保存并生成表单页面】 按钮。

完成这一步后,你的表单结构就已经创建好了,数据表也准备好了。


第二步:在前台页面调用表单

创建好表单后,你需要在前台页面上放置一个表单,让访客可以填写和提交。

织梦提供了非常便捷的标签来实现这一点。

织梦 自定义表单 检索
(图片来源网络,侵删)
  1. 创建一个HTML页面

    • 在你的网站前台,创建一个HTML页面,feedback.html(放在根目录的 templets/default/ 目录下,或者你自定义的模板目录)。
    • 在后台的“模板管理”中,为这个页面创建一个栏目或不关联栏目直接使用。
  2. 使用织梦标签调用表单

    • feedback.html 文件中,使用织梦的自定义表单标签。

    最简单的调用方式(直接输出HTML表单):

    {dede:myform name='你的表单名称'}

    你的表单名称 替换成你在第一步中设置的“名称”,如果你的表单名称是“在线报名”,那么标签就是:

    {dede:myform name='在线报名'}

    织梦会自动解析你定义的字段,并生成一个包含所有字段的HTML表单。

  3. (推荐)自定义表单样式和验证: 直接使用 {dede:myform} 生成的表单样式比较朴素,且可能缺少必要的客户端验证(如手机号格式、邮箱格式等),更推荐的方式是手动编写表单HTML,然后通过织梦标签来填充字段。

    示例代码:

    <form name="myform" action="/plus/diy.php" enctype="multipart/form-data" method="post">
      <input type="hidden" name="action" value="post" />
      <input type="hidden" name="diyid" value="1" />  <!-- diyid是你的自定义表单ID,可以在后台表单列表中看到 -->
      <input type="hidden" name="do" value="2" />
      <!-- 用织梦标签生成一个用于防止重复提交的随机码 -->
      {dede:php}
      if(empty($diyform)) {
        $diyform = $dsql->GetOne("select * from `dede_diyforms` where diyid='$diyid'");
      }
      if($diyform['posttoken']==1){
        echo "<input type='hidden' name='dede_fields' value='".$diyform['fields']."' />\r\n";
        echo "<input type='hidden' name='dede_fieldshash' value='".md5($diyform['fields'].$cfg_cookie_encode)."' />\r\n";
      }
      {/dede:php}
      <!-- 循环输出你定义的字段 -->
      {dede:field name='typename' function='GetChannelDir(@me)'/}
      {dede:php}
      if(!empty($diyform))
      {
        $fields = explode(',', $diyform['fields']);
        foreach($fields as $field)
        {
          $fieldinfo = $dsql->GetOne("select * from `dede_diyformfields` where name like '$field'");
          if($fieldinfo['isnull']==0){
            $required = ' required';
          }else{
            $required = '';
          }
          echo "<div class='form-group'>";
          echo "<label>".$fieldinfo['item']."</label>";
          if($fieldinfo['ptype']=='text')
          {
            echo "<input type='text' name='$field' class='form-control'$required />";
          }
          elseif($fieldinfo['ptype']=='textarea')
          {
            echo "<textarea name='$field' class='form-control'$required></textarea>";
          }
          // 可以继续添加其他类型的判断,如radio, select等
          echo "</div>";
        }
      }
      {/dede:php}
      <button type="submit" class="btn btn-primary">提交</button>
    </form>
    • action="/plus/diy.php":固定写法,指向织梦处理表单数据的脚本。
    • diyid:你的自定义表单的唯一ID,可以在后台“自定义表单”列表中找到。
    • name='字段名':表单中 inputname 属性必须和你第一步中设置的“字段名”完全一致。
  4. 设置成功跳转页面

    • 在后台“自定义表单”列表中,点击你创建的表单进入编辑。
    • 找到 “列表跳转链接”“成功提示页面” 这类选项。
    • 你可以设置一个URL,当用户提交成功后,自动跳转到该页面。/success.html,你也可以留空,织梦会使用默认的成功提示。

第三步:检索和管理表单数据

用户提交数据后,你需要在后台查看和管理。

  1. 进入数据管理

    • 在后台左侧菜单栏中,找到 【核心】 -> 插件】 -> 【自定义表单】
    • 你会看到你创建的所有表单列表。
  2. 查看和检索数据

    • 点击你想要查看的表单名称(在线报名”)。
    • 你会看到该表单所有提交的数据列表。
    • 检索功能:列表页面的顶部通常会有检索框,你可以根据任意一个字段进行搜索,你想查找所有“北京”地区的用户,就在检索框中输入“北京”并点击搜索。
    • 筛选功能:一些版本的织梦支持按日期范围筛选,这对于查找特定时间段内的提交记录非常有用。
  3. 查看单条数据详情

    • 在数据列表中,点击任意一条记录的“预览”或“编辑”按钮。
    • 你会看到一个新页面,详细显示了该用户提交的所有信息。
  4. 导出数据

    • 这是“检索”功能的高级应用,织梦后台没有直接提供一键导出Excel的功能,但可以通过以下方法实现:
      • 数据库导出(推荐给技术人员)
        1. 通过phpMyAdmin登录你的网站数据库。
        2. 找到存储自定义表单数据的数据表(通常是 dede_addplusdede_sysaddplus 加上数字)。
        3. 在该表中执行查询,SELECT * FROM表名WHERE城市= '北京'(根据你的字段名修改)。
        4. 将查询结果“导出”为CSV或Excel格式。
      • 使用第三方插件

        在织梦的插件市场(如DedeCMS官网、织梦吧等)搜索“自定义表单数据导出”等关键词,有很多现成的插件可以实现一键导出功能,安装后即可在后台使用,这是最方便的方法。

      • 手动复制

        对于少量数据,可以直接在后台数据列表页面,全选数据,然后复制到Excel中进行整理。

总结与注意事项

  • 字段名:一旦设置,尽量不要修改,否则可能导致数据错乱。
  • 表单ID (diyid):在前台调用时,务必使用正确的 diyid
  • name 属性:前台表单中每个输入框的 name 必须和后台定义的“字段名”一致。
  • 安全性:自定义表单是网站的一个入口,要注意防范垃圾信息,可以考虑在表单中加入简单的验证码(织梦默认支持,可以在字段管理中添加validate类型的验证码字段)。
  • 数据备份:定期备份你的网站数据库,以防数据丢失。

通过以上三个步骤,你就可以在织梦CMS中完整地实现一个从创建、调用到检索的自定义表单功能了。

-- 展开阅读全文 --
头像
dede模板首页内容如何替换?
« 上一篇 前天
织梦修改文章为何报500错误?
下一篇 » 前天

相关文章

取消
微信二维码
支付宝二维码

目录[+]