【问题标题】:Dynamic value count in dropdown下拉列表中的动态值计数
【发布时间】:2016-01-16 18:37:32
【问题描述】:

我正在尝试创建一个下拉选择菜单,如下所示:

我有一个产品表,每个产品都有一个库存列。假设某个产品的库存为 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>";
?>

有谁知道如何做到这一点?

谢谢大家!

【问题讨论】:

  • 股票栏是否命名为stock?另外,您想在 php 或 jquery 中执行此操作吗? php在页面加载前在服务器端完成,jquery在页面加载后在客户端完成。
  • 列名是 stock。不介意它是 php 还是 jquery。哪个最容易制作:)
  • 不完全。我希望下拉列表的最大值与列中的库存数量相匹配。
  • 它们都很简单,但 easy 取决于您熟悉的编码。两者都是通过简单的for() 循环完成的

标签: php jquery


【解决方案1】:

使用范围来避免循环。

$stockValue=50;
echo "<select><option>".implode('</option><option>', range(1,$stockValue))."</option></select>";

【讨论】:

    【解决方案2】:

    这是使用简单的for() 循环完成的,您可以将for($i=min;$i&lt;=max;$i++) 中的max 更改为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 } ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多