第二十章 表单与留言
表单是栏目的一种模型:三层数据、六个字段、验证码的三个条件、留言进后台之后去哪看,以及新做一张表单网页的步骤。
一张表单在哪里
Ju7CMS 的表单不是插件,而是「栏目的一种模型」。本站的「联系我们」栏目(classid=16)就是这种模型:前台地址仍是普通的 /list/?classid=16,只是模板换成了 model/list/LX1.html,页面本身不放表单;真正可填的表单在页脚弹出的咨询窗口里,是公共片段 foot1.html 的一部分。所以改表单样式会影响全站每一页,改表单字段则要进后台。
三层数据
| 层 | 表 | 本站现状 |
|---|---|---|
| 表单定义 | form | 一条:id=6、cid=16、表名 Contact、通知方式 SMS |
| 字段定义 | form_field | 六个字段,都挂在 formid=16 下 |
| 提交数据 | form_Contact1 | 按「表名 + 序号」生成,一行一条留言 |
这三层是一串的:表单定义决定写到哪张表,字段定义决定表里有哪些列、前台显示哪几行,数据表只负责存值。加一个字段就是给数据表加一列,删字段就是删列——所以删除字段属于高风险动作,见第十三章。
六个字段
| 次序 | 字段名(列名) | 前台标签 | 必填 | 说明 |
|---|---|---|---|---|
| 1 | ju7_service | 服务项目 | 否 | 多选芯片,提交时用顿号拼成一串 |
| 2 | ju7_company | 公司名称 | 否 | 选填,用于判断业务类型 |
| 3 | ju7_xm | 姓名 | 是 | 前台 required,服务端也校验 |
| 4 | ju7_dh | 手机号码 | 是 | 带手机号规则与短信验证码(fsms=1) |
| 5 | ju7_content | 留言内容 | 是 | 多行文本 |
| 6 | ju7_yusuan | 预算档位 | 否 | 下拉选择 |
前台提交的字段名必须与这里的列名一致。foot1.html 里另外带一个隐藏的 classid=16,服务端靠它找到这张表单;这格写错,表单会提交成功但后台收不到(曾经就因为写成了不存在的表单号而整张表从不入库)。
验证码要同时满足三个条件
「获取验证码」能不能用、提交时验不验码,取决于三件事同时成立,缺一个都会静默失效:
- 短信插件已安装(「功能 → 功能管理」里短信配置可打开);
- 插件配置里的「是否开启」为开启;
- 手机号字段在「字段管理」里勾了「开启验证码」(
fsms=1)。
验证码用的模板ID 写在字段编辑页,不是短信配置页。验证码短信和通知短信是两套模板,变量名也不同:验证码模板必须走验证码通道,通知模板用留言内容作变量,混用会报「模板变量不匹配」。
留言进后台之后
提交成功的数据在这里看:内容 → 联系我们(表单栏目)→ 数据列表。列表能做三件事:勾选删除、标记已读、导出。
- 通知:表单定义里可设通知方式与通知号码。本站是短信通知,号码为站点对外电话。
- 导出:「功能 → 导出表单」按表单导出为表格文件,用于归档或交给销售。
- 清理:删除只是删这一条,不进回收站,删前先导出。
做一张新的表单网页
- 新建栏目,页面类型选「表单模型」,模板选一个列表模板(本站用
LX1.html)。 - 「字段管理」里给这个表单加字段,字段名用英文、前台标签写中文。
- 在模板里放
form,字段name与后台字段名完全一致,再带一个隐藏的表单号。 - 提交地址交给
/comment/form/的处理程序,表单加class="ju7_form"以便脚本接管。 - 先提交一条测试,确认后台能看到;再开验证码与短信通知。
不要把表单直接放在多个页面各写一份。字段改名、加验证码、改提交地址时,散落的副本一定会漏。公共片段放一处,全站引用。
常见问题
| 现象 | 先查什么 |
|---|---|
| 点提交没反应,页面不跳 | 表单脚本没加载:检查页脚引用的 andvar.com.js 与 leadform.js 是否 404 |
| 提示验证码错误,但确实收到了 | 三个条件是否都成立;验证码有效期约 15 分钟,超时需重发 |
| 点「获取验证码」没反应 | 短信插件配置、手机号格式、模板ID 与签名是否正确 |
| 提交成功,后台没有记录 | 隐藏的表单号写错,或数据表与表单定义对不上 |
| 后台有记录,但没收到短信 | 通知方式是否为短信、通知号码是否为空、短信余额是否不足 |
| 导出表格缺列 | 导出时只勾了部分字段;字段在后台被停用了 |
接下来怎么读
- 还没建过栏目:先看第十二章,再回来做表单。
- 要加字段或改字段类型:看第十三章,注意删列的风险。
- 短信通道本身发不出去:看第二十五章。
微信扫码聊需求