从MySQL数据库自动填充表单

时间:2014-12-15 11:58:14

标签: php html mysql forms

我正在尝试创建一个表单,您可以在其中插入用户并编辑用户。默认情况下,表单设置为添加用户(include 'insertuserform.php';)。在表单下方打印表[1],其中包含编辑用户的选项(通过链接index.php?uid=".$row['uid']."&cmd=edit),其中if语句表示如果设置了uid并且cmd设置为编辑然后显示编辑用户表单(include 'edituserform.php';)(否则显示添加用户表单)。

要为用户选择部门,添加用户表单中会显示一个下拉菜单,其中显示部门名称,但保存部门ID,并且这两个表已链接[2]。

使用编辑用户表单时,我尝试使用当前数据自动填充字段。为此,我使用查询SELECT * FROM users WHERE uid={$_GET['uid']},然后在输入标记内使用value='".$row['name']."回显表单(显然根据字段更改名称)。

如何为部门下拉菜单执行类似的操作?我已尝试autofocus='".$row['departmentid']."'但它只是将其设置为所有用户的第一个选项。

对不起,如果这没有意义,我可以根据需要提供更多信息。

tl; dr如何自动为MySQL数据库中的下拉选择字段分配值?

Users Table Departments Table

2 个答案:

答案 0 :(得分:2)

如果您希望自动选择此选项,则必须将此选项添加到您的选项中:selected =" selected"

例如:

foreach ($items as $item) {
  echo "<option value=".$item["departmentid"]." ".($row["departmentid"] == $item["departmentid"] ? "selected=\"selected\"" : "").">".$item["departmentname"]."</option>";
}

我们假设&#34; $ items&#34;是&#34;选择*来自部门&#34;。

答案 1 :(得分:1)

您应该在。

中的每个元素中添加一个检查

试试这个:

<option value="<?= $department['departmentid']; ?>" <?php if($row['departmentid'] == $department['departmentid']) { echo " selected" } ?>><?= $department['departmentname']; ?></option>