根据php中的另一个下拉列表构建下拉列表

时间:2016-02-07 21:15:40

标签: php

php和ajax中的新功能,根据另一个数据库下拉列表构建一个下拉列表。现在代码已成功运行,你可以查看我的代码有两个php页面,dropdown2.php和postbrand.php现在只是想知道如何使用postbrand.php中的$ brand变量值在dropdown2.php的第二个下拉列表中的sql查询中使用。

    <?php  
     require 'connect.inc.php';
     $query = "SELECT * FROM `brand`  ";
     $data = mysql_query($query);
    ?>

    <!DOCTYPE html>
    <html>
    <head>
    <title>Input form</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12/jquery.min.js"></script>
    </head>
    <body>
    <form>
     <label>Brand:</label>
     <select name="brand" id="sb" onchange="myFunction()">
     <?php
     while($row=mysql_fetch_array($data))
     {
    ?>
     <option value="<?php echo $row['b_name'];?>">
    <?php 
     echo $row['b_name'];

      ?>
     </option>
     <?php
     }
    ?>
    </select>       
    <br/><br/>
    <label>Model:</label>
    <?php  
    $query = "SELECT model.model, model.b_id from model inner join brand on model.b_id= brand.b_id where brand.b_name like 'sony'";
    $result = mysql_query($query);
    $select= '<select name="select" id="sm">';

    while($rs=mysql_fetch_array($result)){              $select.='<option                                                 value="'.$rs['b_id'].'">'.$rs['model'].'</option>';

        }

     $select.='</select>';
     echo $select;
     ?>
     </form>

    <div id="result"></div>
    <script>
    function myFunction() {
        //alert('working!!');

        var brand = $('#sb').val();

        $.post('postbrand.php', {postbrand:brand},

            function(data){

                    $('#result').html(data);

            });
    }
    </script>
    </body>
    </html>


    postbrand.php

    <?php 

     $brand = $_POST['postbrand'];
     echo $brand;

     ?>

1 个答案:

答案 0 :(得分:0)

如果我弄错了你想要根据第一个下拉列表的选择值填充第二个下拉列表。

要实现这一目标的步骤是: 倾听&#34;改变&#34;第一个下拉列表中的事件(使用JQ)

var selected = ""
$('select#sb').on('change', function() {
  selected = $(this).val(); // get the chosen value
});

 $.post("postbrand.php", selected, function(resp){ //send the selected value to postbrand.php which will return an array of elements from db based on what was selected
      $.each(resp,function(key, val){ //traverse the response and
          $('select#secondDropdown').append('<option>'+val+'</option>') //populate the 2nd dropdown
      })
 })