php - 如何在不刷新页面的情况下刷新下拉列表?

标签 php mysql

我遇到了以下困难:

我正在从 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>

通过使用此代码,我将值从数据库填充到下拉列表,但为此我需要刷新页面以显示值。

谢谢。

最佳答案

使用 jQuery Ajax

你的文件.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>';
            }

关于php - 如何在不刷新页面的情况下刷新下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31290726/

相关文章:

php - 子查询执行不止一行,我的查询不同

php - 我的 div 在 Firefox 中不对齐(适用于 Chrome 和 Safari)

mysql - ORDER BY 和 GROUP BY 的正确顺序是什么

php - MySQL w/PHP 中的查询时间结果

php - Mysql,在任何一年的日月之间更新表

php - MySQL 查询不会将用户输入添加到表中

php - Codeigniter 使用 Controller 魔术方法 __call 进行路由行为

MySQL 检查计数

javascript - JSON stringify 忽略数组中的某些值

mysql - 使用 AVG 时排除带有 "0"的条目