php - <select> 的值不在 <options> 中

标签 php html mysql

假设我有一个数据库表,其中包含 statuses 的列表.

在我的应用程序表单中,我有一个 <select>包含所有这些的选项 statuses用户可以选择。

现在,假设还有另一个表名为 people其中包含 status 的列它代表 status之前从 statuses 列表中选择的.

假设我已经删除了 status来 self 的statuses表,但仍有 people 的数据库行删除后status .

现在在我的表单中,我无法再预先选择 <select>该状态的选项,因为它不再存在于我的 statuses 中表。

那么我该如何处理这个问题,以便它仍然在选择中预先选择已删除的状态?我唯一的选择是拥有 <input type="text">然后是某种类型的自动补全,比如 twitter typeahead?如果是这样,我将如何验证这一点?我可以检查一下 status 是否他们输入的是数据库表中已经存在的内容 statuses

任何见解都会很棒。

最佳答案

解决方案

由于您使用的是 PHP,因此您可以根据人员动态地将适当的状态值附加到列表末尾。

建议

首先,您应该使用外键将状态表链接到人员表,而不仅仅是将状态字符串存储在人员表中。创建这种关系将保持表的引用完整性,并防止您从一开始就删除当前状态。

切勿从表格中删除状态。如果您需要从事件状态列表中删除某个状态,则应在状态表中添加一个名为“IsActive”(或类似名称)的位字段。那么你可以查询SELECT * FROM status where IsActive=1获取新记录,同时在需要时仍保留所有旧值。

关于php - <select> 的值不在 <options> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38103903/

相关文章:

php - 多复选框过滤php

html - 使用 xslt 列出 XML 文件的具有 <li><ui> 标签的项目

javascript - 无法让 jQuery Submit() 在 jQuery 创建的表单上工作

javascript - 在Leaflet中获取多个Marker

php - MySql 数据库 INSERT 操作在硬盘(本地主机)上有效,但在 Internet 上托管时无效

php - @在php中是什么意思?

php - 得到一个解析错误 : syntax error, 意外 '}' ,期望 ',' 或 ';

php - 案例, "document.ready"阻塞时

mysql - Ibatis序列号生成

php - 仅使用 php 显示指定持续时间的数据