有人可以解释一下如何使用数组的值来制作一个选择选项。我自己写了一些代码但是这个领域仍然是空的。
<select id="gebruiker" name="gebruiker" class="form-control">
<?php
$query = "SELECT * FROM users";
$result = mysqli_query($conn, $query);
while ($row1 = mysqli_fetch_array($result)):;
?>
<option value="<?php
echo $row1[0]; ?>">
<?php
echo "<p>$row1[0] $row1[1]</p>"; ?>
</option>
<?php
endwhile;
?>
</select>
代码需要显示用户的ID($ row [0])和名称($ row [1])。
答案 0 :(得分:0)
你可以这样做:
PHP:
<?php
function getSelectItems()
{
$con = mysqli_connect("localhost", "my_user", "my_password", "world");
$table = array();
if ($result=mysqli_query($con, "SELECT * FROM users")) {
if (mysqli_num_rows($result) > 0) {
$counter = 0;
while($row = $result->fetch_assoc()) {
$table[$counter] = $row;
$counter++;
}
}
}
$con->close();
return $table;
}
?>
<select id="gebruiker" name="gebruiker" class="form-control">
<?php
$items = getSelectItems();
for($i = 0; $i < count($items); $i++)
{
$row = $items[$i];
echo "<option value=\"".$row[0]."\">".$row[0]." ".$row[1]."</option>";
}
?>
</select>
将逻辑与视图分开是件好事。因此,我在这里外包了将数据提取到函数中。
这使视图更清晰。
答案 1 :(得分:-1)
您可以稍微清理一下代码。没有必要继续打开和关闭php标签,你可以通过使用反向转义双引号来打印HTML作为 echo 函数的一部分(即&#34; \&#34;),但我建议你在双引号 echo 中使用单引号。
我还会使用 foreach 替换您的 。假设您的变量 $ result 与您定义的一致:
<select id="gebruiker" name="gebruiker" class="form-control">
<?php
$query = "SELECT * FROM users";
$result = mysqli_query($conn, $query);
$rows=$result->fetch_all(MYSQLI_ASSOC);
foreach($rows as &$row) {
echo "
<option value='$row[0]'>
<p>$row[0] $row[1]</p>
</option>
";
}
?>
</select>