【问题标题】:Fill second dropdown based on value from the first根据第一个下拉列表中的值填充第二个下拉列表
【发布时间】:2013-12-06 06:49:01
【问题描述】:

我之前有点问过这个问题,但是我有一个使用 PHP/MYSQL 填充的下拉列表,现在我想根据此处选择的内容更改另一个下拉框中的动态值。我猜我需要使用 AJAX 或 JavaScript 来获取第一个下拉框的值,然后一些如何使用它到下一个下拉框。

这是我当前的下拉菜单

  <label for="order_quoteid">Quote</label>
    <select name="order_quoteid" id="myselect" class="myselect"  style="text-decoration: none; width: 258px; height: 26px;">
      <option value="0"<?php echo !$results['order']->order_quoteid ? " selected" : ""?>>(none)</option>
      <option value="0" > Stock </option>
    <?php foreach ( $results['quotes'] as $quote ) { ?>
      <option value="<?php echo $quote->quote_id ?>"
        <?php echo ( $quote->quote_id == $results['order']->order_quoteid ) ? " selected" : ""?>>
            <?php echo htmlspecialchars( ($quote->quote_code ).str_pad($quote->quote_id, 4, "0", STR_PAD_LEFT).' - '.$quote->quote_title )?>
      </option>
    <?php } ?>
  </select>

一旦我从中获得了 id 并将其作为 php 中的变量取回,我可以创建一个 select 语句和 while 循环来为第二个创建值是正确的吗?

有人可以指出如何从第一个下拉列表中获取值并将其放入第二个。

提前致谢。

伊恩

编辑--------------

我关闭了吗?警报显示正确的值,它只是试图重新加载页面或

  • 以正确的方式使用 PHP 中的值
     <script>
      $(document).ready(function(){
          $('#quoteselect').on( 'change', '.myselect', function() {                             
                var OrderQuoteVal = $(this).val();
                alert(OrderQuoteVal);
                  $.ajax({
                           type: "POST",
                          // url: "saveStatus.php",
                           data: { Orderquoteid : OrderQuoteVal },
    
                           success: function(data) {
                                $('#quoteselect').reload('#quoteselect', function() {});
                                //$('#quoteselect').load('orders.php #quoteselect', function() {});
                           }
                })
            });
          });   
    </script> 
    
          <li class="styled-select" id="quoteselect">
          <?php $qqid = $_POST['Ordderquoteid']; ?>
          <label for="order_quoteid">Quote</label>
            <select name="order_quoteid" id="myselect" class="myselect"  style="text-decoration: none; width: 258px; height: 26px;">
              <option value="0"<?php echo !$results['order']->order_quoteid ? " selected" : ""?>>(none)</option>
              <option value="0" > Stock </option>
            <?php foreach ( $results['quotes'] as $quote ) { ?>
              <option value="<?php echo $quote->quote_id ?>"
                <?php echo ( $quote->quote_id == $results['order']->order_quoteid ) ? " selected" : ""?>>
                    <?php echo htmlspecialchars( ($quote->quote_code ).str_pad($quote->quote_id, 4, "0", STR_PAD_LEFT).' - '.$quote->quote_title )?>
              </option>
            <?php } ?>
          </select>
          </li>   
    
  • 【问题讨论】:

    • 一旦你在重新加载后在 php 中获得了你的值,你可以用它做你想做的事情,例如,你可以向数据库发出请求并将结果放入一个数组中,然后循环数组将数据放在第二个下拉列表中!
    • 嗨 Shyrme,是的,这就是我一直在尝试的,但我的 AJAX 代码可能不太正确,因为我目前无法重用 php 中的值

    标签: javascript php ajax dynamic html-select


    【解决方案1】:

    在 php 中,您可以加载仅显示第一个下拉列表的页面,并添加一个事件以提交该页面,然后查看是否设置了 $_post[var],如果有,则加载第二个的数据下拉菜单。

    我知道这不是最有效的方法,但如果您不想使用 AJAX,它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      相关资源
      最近更新 更多