【问题标题】:how to make drop down list item selected in database如何在数据库中选择下拉列表项
【发布时间】:2014-04-06 11:18:11
【问题描述】:

我有一个 mysql 表,里面有大约 40 个项目。我想要做的是在我的网页上以下拉列表的形式引用这 40 个项目。 而不是像下面这样写出所有 40 个项目来了解是否已选择项目:

<!doctype html>
<html>
</head>
<body>
<select>
<option value="Health & Beauty"<?php if (isset($_POST['SiteType']) && ($_POST['SiteType'] == 'Health & Beauty')) echo ' selected="selected"'; ?>>Health & Beauty</option></select>
</body>
</html>
and so on 40 times...

我想知道如何通过使用如下 SQL 语句来代替: 这是我目前所拥有的。

$sql = "SELECT * FROM sitetypes";
$f = mysqli_query($dbc, $sql) or trigger_error("Query: $sql\n<br />Mysqli Error: " . mysqli_error($dbc));
while($row2 = mysqli_fetch_array($f, MYSQLI_ASSOC)){
echo '<option value="' . $row2['SiteTypeID'] . '">' . $row2['SiteType'] . '</option><\select>';
}

上面的代码生成了一个不错的下拉列表,但我不知道如何让数据库知道用户何时选择了一个项目。我要编写什么代码来实现这一点?我可以使用 SQL 语句选项还是必须像我在本文开头写的那样写出每个项目。

【问题讨论】:

  • 你的意思是如何让数据库知道用户何时选择了一个项目,你选择一个值并提交它?

标签: php sql select menu mysqli


【解决方案1】:

这可能对你有帮助

Select 属性添加到您的 varchar 类型表中

alter table user add Selected varchar(255)

将它们的所有值都赋值为 '0'

在html页面中

<select name="sitename">
    <option></option>
    <!-- your options -->
</select>

当您提交表单时,您只需使用此

echo $_POST['sitename'];

然后使用此查询来数据库知道用户在 usertable 中选择了此字段或您想要的位置

Update user set selcted='$_POST["sitename"]' where userid='currectuserid'

【讨论】:

  • 我不明白你在我的表和枚举中添加选择属性是什么意思 ('0','1') 你能详细说明一下吗?
  • 更新了我的答案,如果我理解正确,这就是你想要的。
  • Manwal,我认为你比他现在更容易混淆 OP。为什么alterupdate 语句在这里? @user3286022 当用户选择一个选项时,您是否需要将所选选项设置为页面加载时的默认选项?
  • 您好 Manwal,我的表已经有一个列站点类型,其中已经列出了所有项目,我不想将这些项目设置为零。我无法理解您的帖子。在我在表中创建的新列中,我是否必须创建 40 个左右的项目,所有项目的值都为 0。
  • 我可以吃芝士汉堡,如果可以选择这样做,那就太好了。我该如何编码。
【解决方案2】:

希望我理解正确

$sql = "SELECT * FROM sitetypes";
$f = mysqli_query($dbc, $sql) or trigger_error("Query: $sql\n<br />Mysqli Error: " .mysqli_error($dbc));
while($row2 = mysqli_fetch_array($f, MYSQLI_ASSOC)){
echo '<option value="' . $row2['SiteTypeID'] . ' '.($row2['SiteTypeName'] == $_POST['SiteType'] ? 'selected="selected"':'').'">' . $row2['SiteType'] . '</option><\select>';
}

我不确定语法是否正确,但你明白了。 编辑:正如我可以 Haz Cheeseburger 建议的那样,您需要从数据库(不是 id)中获取名称或通过 POST 传递 ID

【讨论】:

  • SiteTypeID 不会是 ==SiteType
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多