【问题标题】:How to make combobox value depends on other comboboxes如何使组合框值取决于其他组合框
【发布时间】:2017-11-06 03:35:57
【问题描述】:

我想要一个从其他组合框中填充自身的组合框,当用户从组合框中选择一个选项时,它会使用与组合框中的选择相关的信息填充位于同一页面上的组合框。

下面是我从下拉组合框中选择选择值时用来填充组合框的代码。但它不起作用,组合框仍然是空白的。

提前干杯和感谢:)

HTML

<form role="form" action="" method="post">
    <div class="col-md-3">
        <div class="form-group">
            <label>Brand Name</label>
            <select name="BRAND_CODE" id="BRAND_CODE" required="" class="form-control" onChange="getPRODUCT(this.value);">
                <option value="">Choose Brand</option>
                <option value="1">Brand A</option>
                <option value="2">Brand B</option>
            </select>
        </div>                       
    </div>
    <div class="col-md-3">
        <div class="form-group">
            <label>Production Name</label>
            <select name="PRODUCT_CODE" id="PRODUCT_CODE" required="" class="form-control" onChange="getPRODUCT(this.value);">
                <option value="">Choose Production</option>
                <option value="1">Product 1</option>
                <option value="2">Product 2</option>
                <option value="3">Product 3</option>
            </select>
        </div>  
    </div>  
    <div class="col-md-3">
        <div class="form-group">
            <label>Buyer</label>
            <select name="BUYER_CODE" id="BUYER_CODE" required="" class="form-control">
                <option value="">Choose Buyer</option>
            </select>
        </div>  
    </div>  
</form>

AJAX

<script type="text/javascript">
    function getPRODUCT(val) {
      $.ajax({
      type: "POST",
      url: "check_buyer.php",
      data:['BRAND_CODE='+val,'PRODUCT_CODE='+val],
      success: function(data){
        $("#BUYER_CODE").html(data);
      }
      });
    }
</script>

check_buyer.php

<?php
    require_once("module/conn/conn.php");
    ?>
        <option value="">Choose Buyer</option>
    <?php
    if(!empty($_POST["PRODUCT_CODE"])) {
        $PRODUCT_CODE = $_POST["PRODUCT_CODE"];
        $BRAND_CODE = $_POST["BRAND_CODE"];
        $sql ="select BUYER_CODE,BUYER_NAME from m_buyer where PRODUCT_CODE = '$PRODUCT_CODE' and BRAND_CODE = '$BRAND_CODE'";
        $results = $conn->query($sql);
        while ($rowz = $results->fetch_assoc()) {
            ?>
                <option value="<?php echo $rowz["BUYER_CODE"]; ?>"><?php echo $rowz["BUYER_NAME"]; ?></option>
            <?php
        }
    }
?>

【问题讨论】:

  • 我可能会尝试使用 data: { 'BRAND_CODE' : val, 'PRODUCT_CODE' : val } 修改 ajax。同样在成功输出之前,我可能会添加console.log(data); 以查看控制台日志中是否返回任何内容。
  • 这可能会有所帮助,stackoverflow.com/questions/47083702/…
  • 另外,请确保在 PHP 中准备/绑定您的查询,您很容易受到 sql 注入的攻击。
  • @CasperSL 谢谢,我看看 :)

标签: javascript php jquery ajax combobox


【解决方案1】:

您的BRAND_CODEPRODUCT_CODE 应该引用不同的值,尝试将函数更改为

function getPRODUCT(val) {
    $.ajax({
        type: "POST",
        url: "check_buyer.php",
        data: { 'BRAND_CODE': $("#BRAND_CODE").val(), 'PRODUCT_CODE': $("#PRODUCT_CODE").val() },
        success: function(data) {
            $("#BUYER_CODE").html(data);
        }
    });
}

【讨论】:

  • 仍然得到空白结果.. 看看 ajax onchange 引用
  • 代码更新为使用对象而不是查询字符串,可以再试一次看看是否有效
  • 还是和以前一样的结果。我尝试使用 1 个组合框条件来获取 ajax 的值并且它可以工作.. 但现在我尝试使用 2 个组合框作为条件并获得空白结果:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 2014-12-03
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多