根据第一个值填写第二个下拉列表

时间:2013-11-21 16:51:40

标签: javascript php ajax dynamic html-select

之前我有点问过这个问题,但我有一个使用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循环为第二个创建值是正确的吗?

有人可以指出如何从第一个下拉菜单中获取价值的方向,并将其转化为第二个。

提前致谢。

伊恩

EDIT --------------------------

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

  • ,我可以使用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>   
    
  • 1 个答案:

    答案 0 :(得分:0)

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

    我知道这不是最有效的方法,但如果你不想使用AJAX,它可以提供帮助。