我正在尝试创建一个下拉选择菜单,如下所示:
我有一个产品表,每个都有一个库存栏。假设一个产品的库存为54.我希望下拉菜单从选项1开始一直到选项54.
现在我有这个:
<?php
## Conection part
$sql = "SELECT * FROM product";
$result = $conn->query($sql);
while ( $row = mysqli_fetch_assoc($result) ) { ## 1 While loop
?>
<tr>
<td><input type="checkbox" name="id[]" value="<?= $row['ProductID'] ?>" /></td>
<td><?php echo $row['ProductID']; ?></td>
<td><?php echo utf8_encode($row['ProductName']); ?></td>
<td><?php echo $row['SKU']; ?></td>
<select>
<option value="1">1</option>
</select>
</tr>
<?php
}
$conn->close();
echo "<br>";
?>
任何人都知道如何做到这一点?
谢谢你们!
答案 0 :(得分:2)
使用范围来避免循环。
$stockValue=50;
echo "<select><option>".implode('</option><option>', range(1,$stockValue))."</option></select>";
答案 1 :(得分:1)
这是使用简单的for()
循环完成的,您可以将max
中的for($i=min;$i<=max;$i++)
更改为max
,即。 $row['stock']
。
<select>
<?php for($i=1;$i<=$row['stock'];$i++){ ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php } ?>
</select>
另外,如果您希望在$row['stock']
0
时考虑,则可以显示out of stock
消息 -
<?php if($row['stock'] > 0){ ?>
<select>
<?php for($i=1;$i<=$row['stock'];$i++){ ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php } ?>
</select>
<?php } else { ?>
out of stock
<?php } ?>