Мой код ajax работает нормально в других браузерах, но в IE он не работает хорошо.
Это создает XMLHTTPRequest, но значение из моего PHP-скрипта - это только пустой список!
Вот мой Javascript:
<script type="text/javascript">
function getcity()
{
$('#stateerr').hide();
state=document.getElementById("ddlstate").value;
// alert(state);
var xmlhttp;
if (window.XMLHttpRequest)
{
alert('in this');
xmlhttp=new XMLHttpRequest();
alert(xmlhttp);
}
else
{
alert('in that');
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("ddlcity").innerHTML=xmlhttp.responseText;
alert(xmlhttp.responseText);
}
}
var str="getcity.php?q="+state;
// alert(str);
xmlhttp.open("GET",str,true);
xmlhttp.send();
}
function getlocation()
{
$('#cityerr').hide();
city=document.getElementById("ddlcity").value;
//alert(state);
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("ddllocality").innerHTML=xmlhttp.responseText;
// alert('inhttpresponse');
}
}
var str="getlocation.php?q="+city;
// alert(str);
xmlhttp.open("GET",str,true);
xmlhttp.send();
}
</script>
Вот моя HTML-форма:
<form name="search" action="search.php" method="GET" onsubmit="return searchCheck()">
<table width=100% >
<tr>
<td colspan=3>
<div class="backgroundgif" id="backgroundgif" style="height:30px;width:100%">
<span style="font-size:15px; color:#CCFFFF;">
Search Property
</span>
</div>
</td>
</tr>
<tr>
<td>Property For
</td>
<td>
Rent <input type="checkbox" name="rentchkbox" id="rentchkbox" value="1" onclick="getRentPriceRange()"/>
Sell<input type="checkbox" name="sellchkbox" id="sellchkbox" value="1" onclick="getSellPriceRange()"/>
</td>
</tr>
<tr>
<td>
Purpose
</td>
<td>
<select name="purpose">
<option>Family</option>
<option>Student</option>
<option>s</option>
</select>
</td>
</tr>
<tr>
<td>Price range
</td>
<td>
<select name="ddlamount1" id="ddlamount1" onchange="hideerr()">
<option>select checkbox</option>
</select>
</td>
<td><div id="ddlamount1err" style="display:none"><img src="IMAGES/errorsmall.png"/></div></td>
</tr>
<tr>
<td>
State
</td>
<td>
<select name="ddlstate" id="ddlstate" onchange="getcity()">
<option>select state</option>
<option>MAHARASTRA</option>
</select>
</td>
<td><div id="stateerr" style="display:none"><img src="IMAGES/errorsmall.png"/></div></td>
</tr>
<tr>
<td>
City
</td>
<td>
<select name="ddlcity" id="ddlcity" onchange="getlocation()">
<option>select city</option>
<option>PUNE</option>
</select>
</td>
<td><div id="cityerr" style="display:none"><img src="IMAGES/errorsmall.png"/></div></td>
</tr>
<tr>
<td>
Locality
</td>
<td>
<select name="ddllocality" id="ddllocality">
<option>Select Locality</option>
<option>indra nagar</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Search">
</td>
</tr>
</table>
</form>
А вот и мой PHP-скрипт. Код получает города из выпадающего списка.
<?php
require_once('connection_class2.php');
$connection=new Dbconnection;
$query="select country_id from country where country_name='$_GET[q]'";
$result=$connection->select($query);
while($row=mysqli_fetch_object($result))
{
$country_id=$row->country_id;
}
$query1="select state_name from state where country_id='$country_id'";
$result1=$connection->select($query1);
echo '<option>';
echo 'select state';
echo '</option>';
while($rw=mysqli_fetch_object($result1))
{
$state_name=$rw->state_name;
echo '<option>';
echo $state_name;
echo '</option>';
}
?>
В форме есть и другие функции для проверки, но я их опустил, потому что они кажутся неактуальными.