使用PHP从下拉列表中的第二个下拉列表

时间:2015-03-05 05:43:25

标签: php mysql database select drop-down-menu

我正在创建一个下拉列表,该列表使用选项名称(不同的汽车)。我想添加第二个下拉列表,它使用第一个下拉列表中的id来创建每个汽车的不同模型的下拉列表。

我想尽可能使用PHP,我相信它是。这是我第一次下拉的代码。

function get_vehicle() {
    global $db;
    $query = $db->prepare("SELECT idmanufacturer, name FROM manufacturer");
    $query->execute();
    $vehicles = $query->fetchAll();

    if(isset($vehicles)) {
        echo "<label>Vehicle:</label>";
        echo "<select name='vehicle'>";
    foreach ($vehicles as $vehicle){
            echo '<option value="'.$vehicle['name'].'">'.$vehicle['name'].'</option>';
            }echo "</select>";
        echo "<br />";
    }
 }

1 个答案:

答案 0 :(得分:2)

为此你需要创建一个ajax函数。更改第一个下拉列表时将其值传递给任何其他页面的ajax请求,并通过其id查找所有汽车模型并在第二个下拉列表中显示它。 这是一个例子: - //文件名First.php

function get_vehicle() {

    global $db;

    $query = $db->prepare("SELECT idmanufacturer, name FROM manufacturer");

    $query->execute();
    $vehicles = $query->fetchAll();
    if(isset($vehicles)) {
        echo "<label>Vehicle:</label>";
        echo "<select name='vehicle' onselect="call_models(this)">";
    foreach ($vehicles as $vehicle){
            echo '<option value="'.$vehicle['id'].'">'.$vehicle['name'].'</option>';
            }echo "</select>";
        echo "<br />";
    }
 }

//这将打印第一个选择框

 get_vehicle() ; 

/ *这是第二次下拉默认情况下它将被禁用

<select name="cardmodels" id="models" disabled>
<option></option>
</select>

/ *************添加ajax函数************ /

<script type="text/javascript">

/***********  This function will get the value of first dropdown and will pass the value to the second.php where we will create function to retrieve all models of selected class after fetching this we will return all options of second class. After fetching this we will assign to the second dropdown.

***************/

    function call_models(cnt)
    {
    var model= $(cnt).val();    
    if(models)  {
    $.ajax({
    type: "POST",
    url: "Second.php",
    data: {model:model_car}
    })
    .done(function(responce) {
    if(responce!="Not_found") {
    $('#models').removeAttr( "disabled" );
    $('#models').html(responce);
    }
    });
    }
    }

</script>

/ **************第二.php ********* / //文件名First.php

    function get_models($id) {

        global $db;

        $query = $db->prepare("SELECT model_name FROM car_models where car_id ='".$id."' ");

        $query->execute();
        $models= $query->fetchAll();

        if($models) {

        foreach ($models as $model){
                echo '<option value="'.$model['name'].'">'.$model['name'].'</option>';
                }
        }
     }


if($_POST) {


get_models($_POST['model']);


} else {


echo "Not_found";

}

?>