【问题标题】:PHP MYSQL Multiple drop downs Select value on changePHP MYSQL 多个下拉菜单选择更改值
【发布时间】:2026-01-19 22:45:02
【问题描述】:

我已从表格中获取产品尺寸和数量,并将它们显示在下拉列表中。根据产品的不同,下拉列表可能从 5 到 6 不等。我想在用户选择时从下拉列表中获取尺寸 id 的值从下拉列表中将其作为值放入输入类型号中。

<select name='size' id='size' class='form-control'>

      <option value="1">Small</option>

  </select>

<input type='number' name='quantity' min='1' value='1' class='form-control' />
<select name='size' id='size' class='form-control'>

      <option value="2">Large</option>

  </select>

<input type='number' name='quantity' min='1' value='1' class='form-control' />

<select name='size' id='size' class='form-control'>

      <option value="3">XLarge</option>

  </select>

<input type='number' name='quantity' min='1' value='1' class='form-control' />

我使用的jquery如下,

<script type="text/javascript">
    $(document).ready(function() {
        $("#size").change(function() {
            var str = "";
            $("select option:selected").each(function() {
                str += $(this).val() + " ";
            });
        });
    });
</script>

我从第一个下拉列表中获取值,但无法从其他下拉列表中获取。 请帮忙

【问题讨论】:

  • 您的其他下拉菜单在哪里?可能是因为您有多个 id="size" 仅适用于第一个实例。 id 是独一无二的。使用类作为选择器。
  • 感谢您的回复。我在循环中获取其他下拉列表,名称和 ID 为“大小”。花了很多时间但没有得出任何结论...
  • 你不能有多个同名的ID。您需要改用该类
  • @MuhammadMaaz,您想从一个选项中选择多个选项吗?
  • 不,我想在选择任何下拉值时获取该值

标签: php jquery mysql


【解决方案1】:

作为讨论,我做了一个小提琴来给出解决方案Fiddle Link

更新的 JS:

$(document).ready(function() {
    $(".size").on("change", function() {
        $(this).closest("div").find("input").val($(this).val());
    });
});

如果您想在选择任何选项时获得$row['size'],那么您还必须更改您的PHP 代码。

更新的 PHP

<div>
<select name='size' class='form-control size'>
    <?php foreach ($rows as $row) {?>
      <option value="<?php echo $row['size']?>" <?php if ($row['quantity'] == 0) echo "disabled=disabled"?>>
        <?php echo $row['size']?>
      </option>
        <?php }?>
</select>
<input type='number' name='quantity' min='1' value='1' class='form-control' />
</div>
<div>
<select name='size' class='form-control size'>
    <?php foreach ($rows as $row) {?>
      <option value="<?php echo $row['size']?>" <?php if ($row['quantity'] == 0) echo "disabled=disabled"?>>
        <?php echo $row['size']?>
      </option>
        <?php }?>
</select>
<input type='number' name='quantity' min='1' value='1' class='form-control' />
</div>

注意: $(this).val() 从下拉列表中获取选定的值,然后将值放入输入字段中 $(input[name=quantity]).val() 我把$row['size'] 放到option value

让我知道它是否对您有帮助。

【讨论】:

  • 感谢您的帮助。它在第一个实例上正常工作。在其他下拉列表上使用第一个下拉列表值时,请更改所有其他输入类型的数量值>
  • 取决于添加的产品。每个产品都有数量和尺寸值。我想要的是从下拉列表中获取值并将其添加为输入类型编号中的值。
  • 循环在输入类型数字上方完成,这就是为什么我无法获得数量值
  • 哪个循环??你是说foreach吗?如果是这样,那就不是事实。
  • 如果您想从一个选择框中选择多个选项,那么答案会有所不同。
【解决方案2】:

试试这个:

<td>
    <select name='size' id='size' class='form-control'>
          <?php foreach ($rows as $row) {?>
            <option value="<?php echo $row['id']?>" <?php if ($row['quantity'] == 0) echo "disabled=disabled"?> >
                <?php echo $row['size']?>
            </option>
          <?php }?>
        </select>
</td>
<td>
    <input type='number' name='quantity' min='1' value='1' class='form-control' />
</td>

【讨论】:

  • 请添加一些描述,最好猜一下你改变的地方或你做了什么。
  • @FrayneKonok,我很抱歉描述。我正在使用循环从 db 中获取下拉列表。下面是输入类型编号。我想从所选下拉列表中的更改事件中获取值,并将其作为最大值放入输入类型中。每次我从第一个实例中获取值,而不是从其他下拉列表中获取值。
  • @MuhammadMaaz,我在这里评论noushid不是你。
【解决方案3】:

您的下拉列表 id 应该不同,因为您知道 id 对于文档中的一个元素是唯一的。

【讨论】:

    最近更新 更多