📅  最后修改于: 2023-12-03 15:36:18.385000             🧑  作者: Mango
在 PHP 中,我们经常需要从数据库中获取数据并将其显示在下拉列表中,同时还要能将用户选择的选项保存回数据库中。以下是一个包含完整代码片段的例子,介绍如何实现这一过程。
首先,我们需要从数据库中获取数据。假设我们有一个名为 items
的表,其中包含 id
和 name
两个字段,我们需要将 name
显示在下拉菜单中:
<?php
// 连接数据库
$connection = mysqli_connect('localhost', '用户名', '密码', '数据库名');
// 检查连接
if (!$connection) {
die("连接失败: " . mysqli_connect_error());
}
// 查询数据
$sql = "SELECT id, name FROM items";
$result = mysqli_query($connection, $sql);
?>
<!-- 显示下拉列表 -->
<select name="items">
<?php while ($row = mysqli_fetch_assoc($result)) { ?>
<option value="<?= $row['id'] ?>"><?= $row['name'] ?></option>
<?php } ?>
</select>
<?php mysqli_close($connection); ?>
这段代码连接到名为 数据库名
的数据库,并查询 items
表的所有记录。然后,使用 PHP 循环遍历结果集,并将每一行的 id
显示为选项的值,将 name
显示为选项的文本。
注意,我们在每个选项的值上使用了 PHP 的短标签 (<?= ?>
),这等效于使用 <?php echo ... ?>
,只是更简洁一些。
接下来,我们需要能够将用户选择的选项保存回数据库中。为此,我们可以使用 POST 请求和 PHP 表单处理。以下是一个提交表单的例子:
<?php
// 连接数据库等代码同上
// 提交表单处理
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$item_id = $_POST["items"];
$sql = "INSERT INTO orders (item_id) VALUES ($item_id)";
mysqli_query($connection, $sql);
}
?>
<!-- 显示表单 -->
<form method="post">
<select name="items">
<?php mysqli_data_seek($result, 0); // 重新指向结果集的开头 ?>
<?php while ($row = mysqli_fetch_assoc($result)) { ?>
<option value="<?= $row['id'] ?>"><?= $row['name'] ?></option>
<?php } ?>
</select>
<button type="submit">提交</button>
</form>
<?php mysqli_close($connection); ?>
这段代码首先检查是否收到了来自 POST 请求的数据。如果是,则将用户选择的项的 id
插入到名为 orders
的表中。我们假设 orders
表包含一个名为 item_id
的字段,用于存储用户选择的项的 id
。
然后,我们在 HTML 表单中显示下拉菜单和提交按钮。注意,我们使用 mysqli_data_seek
将结果集指向开头,以便第二次循环渲染下拉菜单。
通过连接到数据库并查询数据,我们可以在 PHP 中轻松地回显下拉列表。使用表单处理,我们还可以将用户选择的项保存回数据库中。这是一个基本的例子,可以根据需要进行修改,例如添加输入验证或更改表名。