如何在不刷新页面的情况下刷新下拉菜单?

7

我遇到了以下困难:

我从MySQL中获取下拉列表的值,并希望在该下拉列表中显示这些信息。

看这个:

<select id="location" name="location" class='form-control'>
    <option value="0">Select location</option>
        <?php
            $query = mysql_query("select cityname from city");
                while($row = mysql_fetch_assoc($query))
                {
                    echo '<option value="'.$row['cityname'].'">'.$row['cityname']. '</option>';
                }
        ?>
</select>

使用此代码,我可以将数据库中的值填充到下拉列表中,但是为此需要刷新页面才能显示值。

谢谢。


3
你正在寻找AJAX - Abey
请不要引用任何w3schools的参考资料。 - Meenesh Jain
您想在哪个操作上刷新选择框? - dhi_m
1个回答

3

使用jQuery Ajax

yourfile.php

<select id="location" onchange="getState(this.value)" name="location" class='form-control'>
<option value="0">Select location</option>
    <?php
        $query = mysql_query("select * from city");
            while($row = mysql_fetch_assoc($query))
            {
                echo '<option value="'.$row['cityid'].'">'.$row['cityname']. '</option>';
            }
    ?>
</select>

<select id="state">

</select>

Jquery脚本

function getState(city_id)
{
    var html = $.ajax({
        type: "POST",
        url: "path/to/ajax/my_ajax.php",
        data: "city_id=" +city_id,
        async: false
    }).responseText;
    if(html){
        $("#state").html(html);
    }
}

AJAX.php

$query = mysql_query("select * from state where city_id=".$_REQUEST['city_id']);
            while($row = mysql_fetch_assoc($query))
            {
                echo '<option value="'.$row['state_id'].'">'.$row['state_name']. '</option>';
            }

1
可能听起来有点刺耳,但这是正确的 :) - Allen Linatoc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接