因此,我希望table
使用database
echo out
来select
option
option
。但我遇到了麻烦,因为我有 <?php
while(mysqli_stmt_fetch($stmt)) {
?>
<select class="form-control input-sm">
<option value="ABLE SEAMAN" <?php if($boiler_size == 'ABLE SEAMAN') { echo "selected"; } ?>>ABLE SEAMAN</option>
<option value="AKO ITO" <?php if($boiler_size == 'AKO ITO') { echo "selected"; } ?>>AKO ITO</option>
<option value="APPRENTICE" <?php if($boiler_size == 'APPRENTICE') { echo "selected"; } ?>>APPRENTICE</option>
</select>
用户可以添加更多选项,我不知道如何设置它的值。你可以帮我解决这个问题吗?谢谢!
这是我目前的代码:
splitdir
答案 0 :(得分:0)
您必须获取从数据库中选择的行的计数,因为如果计数为零,则会在while loop
或foreach
中抛出错误作为显示的首选用法动态选择选项。
因此,为了显示动态选择选项,我们需要执行以下过程。
<?php
$query="SELECT * FROM `TABLENAME` ORDER BY `id` DESC";
$stmt = mysqli_query($conn,$query);
$count = $stmt->num_rows;
?>
<select class="form-control input-sm">
<?php
if($count==0)
{
echo '<option value="">No Datas have been created Yet</option>';
}
else
{
while($fetch = $stmt->fetch_assoc())
{
?>
<option value="<?php echo $fetch['id']; ?>"><?php echo $fetch['name']; ?></option>
<?php
}
}
?>
</select>
使用上面的代码,你可以从数据库中获取n个数量的选项值,你可以很容易地显示它而不会有任何混淆。选项值将重复直到循环结束,仅此后select
将结束。因此,如果数据库有n-number
,则while循环将重复n次,并在此之后结束。
答案 1 :(得分:-1)
简单写函数:
function populate_options($table_name, array $fields, $selected_option = "") {
$options = "<option></option>";
$st = $pdo->prepare("SELECT distinct `$fields[0]`, `$fields[1]` FROM $table_name WHERE 1 GROUP BY `$fields[1]` ");
$st->execute();
$rowes = $st->fetchAll(PDO::FETCH_ASSOC);
if ($selected_option=="") {
foreach ($rowes as $row) {
$options.= "<option value = '{$row->$fields[0]}'";
$options.= ">" . ucwords( $row->$fields[1] ) . "</option>";
}
} else {
foreach ($rowes as $row) {
$options.= "<option value = '{$row->$fields[0]}'";
$options.= ((($selected_option == $row->$fields[0])) ? ' selected="selected"' : '') . ">" . ucwords($row->$fields[1] ). "</option>";
}
}
}
return $options;
}
并调用您的代码
<select class="form-control input-sm">
<?php echo $populate_options("tbl_name", array('id', 'name'),$boiler_size); ?>
</select>