织梦后台自定义表单修改

99ANYc3cd6
预计阅读时长 21 分钟
位置: 首页 织梦建站 正文

修改一个“在线报名”表单,在原有的“姓名”、“电话”基础上,增加一个“所在城市”字段


第一步:修改前端提交页面 (通常是 plus/diy.php 或自定义模板)

这是用户填写和提交表单的页面,我们需要在这里增加新的输入框。

  1. 找到你的表单模板文件

    • 如果你使用的是系统默认的 plus/diy.php,那么直接修改这个文件。
    • 如果你使用的是在后台“自定义表单”中创建的,并且指定了模板,那么修改你指定的那个模板文件(templets/plus/diy_form.htm)。
  2. 在HTML表单中增加新的字段 打开这个文件,找到 <form> 标签内部,在你希望的位置添加新的输入项。

    关键点:

    • name 属性的值必须和你在后台添加的字段名完全一致(不区分大小写,但最好保持一致)。
    • type 属性可以是 text (文本), select (下拉框), radio (单选), checkbox (多选) 等。
    • 为了用户体验,最好给每个输入项加上 <label>

    示例代码:

    假设你原来的表单是这样:

    <form action="/plus/diy.php" enctype="multipart/form-data" method="post">
        <input type="hidden" name="action" value="post" />
        <input type="hidden" name="diyid" value="1" />  <!-- 这个值是你的表单ID -->
        <input type="hidden" name="do" value="2" />
        <p>姓名:<input type="text" name="name" id="name" /></p>
        <p>电话:<input type="text" name="tel" id="tel" /></p>
        <p><button type="submit">提交</button></p>
    </form>

    现在我们增加一个“所在城市”的下拉选择框:

    <form action="/plus/diy.php" enctype="multipart/form-data" method="post">
        <input type="hidden" name="action" value="post" />
        <input type="hidden" name="diyid" value="1" />  <!-- 你的表单ID -->
        <input type="hidden" name="do" value="2" />
        <p>
            <label for="name">姓名:</label>
            <input type="text" name="name" id="name" />
        </p>
        <p>
            <label for="tel">电话:</label>
            <input type="text" name="tel" id="tel" />
        </p>
        <p>
            <label for="city">所在城市:</label>
            <select name="city" id="city">
                <option value="北京">北京</option>
                <option value="上海">上海</option>
                <option value="广州">广州</option>
                <option value="深圳">深圳</option>
            </select>
        </p>
        <p><button type="submit">提交</button></p>
    </form>

第二步:在织梦后台添加新字段

这是最核心的一步,需要在数据库中为你的表单创建新的列。

  1. 登录织梦后台 (/dede/ 目录)。

  2. 进入自定义表单管理

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

    • 在自定义表单列表中,点击你想要修改的那个表单的 【字段管理】
    • 点击 【添加新字段】
    • 在弹出的页面中,填写字段信息:
      • 字段名称: city (必须和第一步中 inputname 属性值完全一致)
      • 字段别名: 所在城市 (这个是后台显示用的,可以写中文)
      • 字段类型: select (因为我们用的是下拉框,根据你的需要选择,如 text, radio 等)
      • 字段值: 北京,上海,广州,深圳 (如果是 selectradio/checkbox,在这里填写选项,用英文逗号隔开)
      • 默认值: (可选,可以留空或设置一个默认选项)
      • 是否为必填项: 勾选此项,用户就必须填写这个字段才能提交。
      • 数据校验: (可选,如“手机号”、“邮箱”等,我们这里可以不选)
      • 显示顺序: (数字,越小越靠前)
    • 点击 【保存】
  4. 更新缓存

    • 字段添加完成后,系统会提示你更新表单缓存,请务必去 【系统】 -> 【一键更新网站】 -> 【更新数据库缓存】,执行一次更新,否则,前台可能无法正常提交或后台看不到新字段。

第三步:修改后台处理逻辑 (通常是 plus/diy.php)

diy.php 负责接收前端提交的数据并将其存入数据库,默认情况下,它会把所有 POST 过来的数据都存入,所以通常不需要修改,如果你对数据有特殊处理需求(比如数据加密、格式化等),就需要在这里修改。

默认的 diy.php 逻辑分析:

// ... 前面的代码 ...
// 获取所有POST数据
$_POST['time'] = time(); // 添加提交时间
$addvalue = '';
foreach($_POST as $k=>$v){
    if($k == 'action' || $k == 'diyid' || $k == 'do' || $k == 'dede_fields' || $k == 'dede_fieldshash') continue;
    $addvalue .= "'$v',";
}
$addvalue = trim($addvalue, ',');
// 构建SQL语句
$query = "INSERT INTO `{$diy->table}` (`{$diy->addtablearr[0]}`, `{$diy->addtablearr[1]}`, `{$diy->addtablearr[2]}`, `{$diy->addtablearr[3]}`) VALUES ($addvalue)";
// ... 执行SQL ...

这段代码会遍历所有 POST 数据,跳过系统保留字段(action, diyid 等),然后将剩下的字段拼接成SQL语句并执行,因为我们的新字段 city 也会被 $_POST 接收到,所以它会自动被包含在 $addvalue 中,并最终存入数据库。

什么情况下需要修改? 假设你想在存入数据库前,对“城市”字段做一些处理,比如统一转换为大写:

// ... 在foreach循环内部修改 ...
foreach($_POST as $k=>$v){
    if($k == 'action' || $k == 'diyid' || $k == 'do' || $k == 'dede_fields' || $k == 'dede_fieldshash') continue;
    // 特殊处理城市字段
    if($k == 'city') {
        $v = strtoupper($v); // 转换为大写
    }
    $addvalue .= "'$v',";
}

注意: 除非有特殊需求,否则强烈建议不要修改 diy.php,保持其默认行为最稳定。


第四步:修改后台显示和管理

现在数据已经存入数据库,我们需要在后台能看到并管理这个新字段。

  1. 检查数据列表

    • 回到 【核心】 -> 【自定义表单】,点击你表单的 【数据管理】
    • 在数据列表页面,你应该能看到新增的“所在城市”列,如果看不到,请再次执行 【更新数据库缓存】
  2. 修改数据查看/编辑页面 (可选)

    • 如果你想在点击“查看”或“编辑”单条数据时,页面布局更好看,可以修改模板。
    • 进入 【核心】 -> 【自定义表单】,点击 【查看表单】
    • 系统会显示一个预览,并让你选择修改哪个模板,通常它会指向 templets/diy_list.htm (列表页) 和 templets/diy_preview.htm (预览/编辑页)。
    • 打开 diy_preview.htm,修改HTML结构,把 city 字段对应的代码调整到你想要的位置。

第五步:修改邮件通知模板 (可选)

如果你的表单提交后需要发送邮件通知管理员,你还需要修改邮件模板,以便在新邮件中包含这个字段。

  1. 进入 【核心】 -> 【自定义表单】,点击你表单的 【邮件模板】
  2. 编辑框中,使用 [field:字段名] 的语法来调用字段值。
    • 中加入:

      用户提交了新的报名信息: 姓名:[field:name] 电话:[field:tel] 所在城市:[field:city] <-- 新增的这一行

  3. 保存设置。

总结与注意事项

步骤 操作文件/位置 关键点
修改前端 plus/diy.php 或自定义模板 inputname 属性必须和后台字段名一致。
后台加字段 【核心】->【自定义表单】->【字段管理】 字段名是核心,必须和前端 name 一致。更新缓存是必须的!
修改处理逻辑 plus/diy.php 默认无需修改,除非有特殊的数据处理需求。
修改后台显示 【核心】->【自定义表单】->【数据管理】 新字段通常自动显示,如需调整布局,修改 diy_preview.htm
修改邮件通知 【核心】->【自定义表单】->【邮件模板】 使用 [field:字段名] 语法在新邮件中显示字段。

重要提醒:

  • 备份数据! 在修改任何文件或数据库结构之前,请务必备份你的网站文件和数据库。
  • 字段名规范: 建议使用英文小写字母、数字和下划线,user_name,避免使用中文或特殊符号,这能减少很多潜在的麻烦。
  • 权限问题: 确保你的Web服务器(如Apache/Nginx)对你要修改的文件(如 diy.php)有写入权限,尤其是在提交表单时。

按照以上步骤,你就可以成功地为织梦自定义表单增加、修改任何字段了。

-- 展开阅读全文 --
头像
C语言字符串数组长度函数是哪个?
« 上一篇 01-08
c语言程序设计视频教程 徐红波
下一篇 » 01-08

相关文章

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