更新標記選項時,內部html funcion有問題。在第一個選擇標記中,我選擇了一個國家,並且ajax代碼必須更新另一個選擇標記中的城市。我的代碼適用於除IE以外的所有主流瀏覽器。這裏是調用PHP腳本的JS代碼:在IE上更新選擇標記與Ajax時出現問題
>function show_zones(str)
>{
>if (window.XMLHttpRequest)
> {// code for IE7+, Firefox, Chrome, Opera, Safari
> xmlhttp=new XMLHttpRequest();
> }
>else
> {// code for IE6, IE5
> xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
> }
>xmlhttp.onreadystatechange=function()
> {
> if (xmlhttp.readyState==4 && xmlhttp.status==200)
> {
> document.getElementById('region_to').innerHTML="";
> jQuery.noConflict();
> (function($) {
> $('#region_to').append(xmlhttp.responseText);
> })(jQuery);
> alert(xmlhttp.responseText);
> }
> }
>xmlhttp.open("GET","ajax/zones.php?country="+str,true);
>xmlhttp.send();
>}
在所有的瀏覽器警告代碼返回相應的選項標籤,但在IE瀏覽器,它返回「Undifined」。我正在使用Jquery追加xmlhttp.responseText,因爲IE不支持selecthtml的innerhtml。 noConflict函數用於避免mootolls和jquery庫之間的衝突。我不能將選擇標籤放在div中,而是隻打印選項而不是打印選項,因爲我使用的自定義選擇是在發生window.onload事件時由js代碼創建的。
這裏是PHP代碼:
>require_once("../../connect.php");
>$country_query="SELECT* FROM `tour_countries` WHERE >country_name='".$_GET['country']."'";
>$country_result=mysql_query($country_query);
>$country_row=mysql_fetch_array($country_result);
>$zone_query="SELECT* FROM `tour_zones` WHERE country_ID='".$country_row[0]."'";
>$zone_result=mysql_query($zone_query);
>while($zone_row=mysql_fetch_array($zone_result))
>{
> echo '<option value="'.$zone_row[1].'">'.$zone_row[1].'</option>';
>}
感謝回信和對不起我那可憐的englesh。
問題是我使用GET方法並試圖傳遞俄語字符。我用POST替換了GET方法,它工作。非常感謝。你的回答真的幫了我。 –