0

我知道这个问题已经被问过很多次了,你们可能都已经厌倦了。我只是被困住了,已经在这上面花了大约 4 个小时。我已经阅读了很多关于

    cache:false, 

选项并添加某些“内容类型”,但是当我这样做时,它不再适用于任何浏览器。

我按照此处找到的教程进行操作:http ://www.x-developer.com/php-scripts/loading-drop-downs-with-ajax-php-and-fetching-values-from-database-without-refreshing-这页纸

我当然根据自己的需要对其进行了修改,主要是 mysql 和标识符。

这就是我的头部部分:

    <script type="text/javascript">
    function get_cities(country)
    {

    $.ajax({
    type: "POST",
    url: "/cities.php", 
    cache: false,
    beforeSend: function () {
    $("#state").html("<option>Loading ...</option>");
    },
    data: "country="+country,
    success: function(msg){
    $("#state").html(msg);

    }
    });
    } 
    </script>

在 IE 中,它进入 Loading.... 部分,并且什么也不做,它不会像在 Chrome 和 FF 中那样填充选项字段。

您是否在教程中看到他可能遗漏的对 IE 中的操作至关重要的内容?

谢谢,

4

2 回答 2

1

尝试将数据对象设置为键值对..

代替

data: "country="+country,

尝试

data: { "country" : country },
于 2012-09-25T00:26:55.850 回答
0

假设您$("#state")已经是一个下拉列表。

在 中cities.php,您需要删除<select>标签。

<?php
// Code for cities.php
$country_id = $_REQUEST['country_id'];

$sql_city = "SELECT * FROM CITY WHERE country_id = '".$country_id."'";
$result_city = mysql_query($sql_city);

// REMOVE THIS LINE
//echo "<select name='city'>";

while($row_city = mysql_fetch_array($result_city))
{
echo "<option value='".$row_city['id']."'>".$row_city['city']."</option>";
}

// AND REMOVE THIS LINE  
// echo "</select>";

?>
于 2012-09-25T04:35:20.100 回答