Ajax和PHP驱动的下拉列表不能在ie中工作
Ajax and PHP powered drop down list wont work in Internet Explorer
嗨,我在IE中有一个ajax脚本的问题,它似乎在所有其他浏览器中都能正常工作。我正试图重新编写一个下拉列表,以显示不同的价格范围取决于用户是想租还是想买,这是我如何解决它
标题部分的函数:
<script type="text/javascript">
function showPrice(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getprice.php?q="+str,true);
xmlhttp.send();
}
</script>
这是生成表格的HTML代码:
<table>
<form method="GET" action="search_results.php">
<tr>
<td>
<select name="type" style="width:120px">
<option selected="selected" value="residential">residential</option>
<option value="commercial">commercial</option>
<option value="business">business</option>
<option value="student">student & sharers</option>
</select>
</td>
<td>
<select name="offered" style="width:120px" onchange="showPrice(this.value)">
<option selected="selected" value="for_sale">for sale</option>
<option value="to_let">to let</option>
</select>
</td>
<td>
<select name="area" style="width:120px">
<option selected="selected" value="any">any area</option>
<?php
$sql="select * from areas;";
$result=mysql_query($sql);
while($data=mysql_fetch_array($result))
{
$area=$data['area'];
echo "<option value='$area'>$area</option>";
}
?>
</select>
</td>
</tr>
<tr id="txtHint">
<td>
<select name='minprice' style="width:120px">
<option selected='selected' value=''>min price</option>
<option value='50000'>£50,000</option>
<option value='75000'>£75,000</option>
<option value='100000'>£100,000</option>
<option value='125000'>£125,000</option>
<option value='150000'>£150,000</option>
<option value='175000'>£175,000</option>
<option value='200000'>£200,000</option>
<option value='250000'>£250,000</option>
<option value='300000'>£300,000</option>
<option value='400000'>£400,000</option>
<option value='500000'>£500,000</option>
<option value='750000'>£750,000</option>
<option value='1000000'>£1,000,000</option>
<option value='1500000'>£1,500,000</option>
</select>
</td>
<td>
<select name='maxprice' style="width:120px">
<option selected='selected' value=''>max price</option>
<option value='50000'>£50,000</option>
<option value='75000'>£75,000</option>
<option value='100000'>£100,000</option>
<option value='125000'>£125,000</option>
<option value='150000'>£150,000</option>
<option value='175000'>£175,000</option>
<option value='200000'>£200,000</option>
<option value='250000'>£250,000</option>
<option value='300000'>£300,000</option>
<option value='400000'>£400,000</option>
<option value='500000'>£500,000</option>
<option value='750000'>£750,000</option>
<option value='1000000'>£1,000,000</option>
<option value='1500000'>£1,500,000</option>
</select>
</td>
<td>
<select name="bedrooms" style="width:120px">
<option selected="selected" value="">Bedrooms</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5 or more</option>
</select>
</td>
</tr>
</form>
</table>
,这是PHP文件,它决定是响应最低价格区间还是最高价格区间:
<?php
$q=$_GET["q"];
if($q=="to_let")
{
<td>
<select name='minprice' style='width:120px'>
<option selected='selected' value=''>min price</option>
<option value='250'>£250</option>
<option value='500'>£500</option>
<option value='750'>£750</option>
<option value='1000'>£1000</option>
<option value='1250'>£1250</option>
<option value='1500'>£1500</option>
<option value='2000'>£2000</option>
</select>
</td>
<td>
<select name='maxprice' style='width:120px'>
<option selected='selected' value=''>max price</option>
<option value='250'>£250</option>
<option value='500'>£500</option>
<option value='750'>£750</option>
<option value='1000'>£1000</option>
<option value='1250'>£1250</option>
<option value='1500'>£1500</option>
<option value='2000'>£2000</option>
</select>
</td>
<td>
<select name='bedrooms' style='width:120px'>
<option selected='selected' value=''>Bedrooms</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5 or more</option>
</select>
</td>
PRICE;
}
else
{
$my_string = <<<PRICE
<td>
<select name='minprice' style='width:120px'>
<option selected='selected' value=''>minimum price</option>
<option value='50000'>£50,000</option>
<option value='75000'>£75,000</option>
<option value='100000'>£100,000</option>
<option value='125000'>£125,000</option>
<option value='150000'>£150,000</option>
<option value='175000'>£175,000</option>
<option value='200000'>£200,000</option>
<option value='250000'>£250,000</option>
<option value='300000'>£300,000</option>
<option value='400000'>£400,000</option>
<option value='500000'>£500,000</option>
<option value='750000'>£750,000</option>
<option value='1000000'>£1,000,000</option>
<option value='1500000'>£1,500,000</option>
</select>
</td>
<td>
<select name='maxprice' style='width:120px'>
<option selected='selected' value=''>maximum price</option>
<option value='50000'>£50,000</option>
<option value='75000'>£75,000</option>
<option value='100000'>£100,000</option>
<option value='125000'>£125,000</option>
<option value='150000'>£150,000</option>
<option value='175000'>£175,000</option>
<option value='200000'>£200,000</option>
<option value='250000'>£250,000</option>
<option value='300000'>£300,000</option>
<option value='400000'>£400,000</option>
<option value='500000'>£500,000</option>
<option value='750000'>£750,000</option>
<option value='1000000'>£1,000,000</option>
<option value='1500000'>£1,500,000</option>
</select>
</td>
<td>
<select name='bedrooms' style='width:120px'>
<option selected='selected' value=''>Bedrooms</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5 or more</option>
</select>
</td>
PRICE;
}
echo $my_string;
?>
这似乎在FF, Safari和Chrome中工作得很好,只是不在IE中,我看到过类似的问题,但没有什么可以解决这个特定的问题。
留言回复:
我建议你加载这两个集合,并通过隐藏或显示在它们之间切换:
window.onload=function() {
showPrice('for_sale'); // or do this in CSS
}
function showPrice(letOrSale) {
var forSale = letOrSale==="for_sale";
document.getElementById('forLetId').style.display=forSale?"none":"";
document.getElementById('forSaleId').style.display=forSale?"":"none";
}
相关文章:
- Javascript赢得'不能在IE上编译,但可以在Chrome上运行
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- 我的剧本赢了'不能在IE中工作(甚至9)?修改复制文本的简单javascript
- Jquery animate 不能与 IE 一起使用 - 什么也没发生
- 从Java脚本返回多个值,这些值不能在firefox上运行(在IE上运行良好)
- addEventListener没有'不能在IE中工作(在IE8中测试)
- JavaScript可以在IE+Chrome中使用,但不能在FF中使用
- jQuery scrollTop没有'不能在FF或IE中制作动画,但在chrome中效果良好
- .load() 适用于 IE 和 dreamweaver 预览版,但不能使用 opera 和 chrome
- JavaScript 在 IE 中工作,但不能在 Firefox 中工作
- 嵌入式谷歌地图仅在IE上加载,但既不能在Mozilla Firefox上加载,也不能在Google Chrome上加载
- JQuery CSS Transform在Chrome和Firefox中工作,但不能在IE中工作
- 不能让CKEditor插入HTML在IE 8上运行
- jQuery在Chrome和Safari中工作,但不能在Firefox或IE中工作
- “无法获取未定义或空引用的属性'getData'”在IE中,但不能在Chrome中获取
- “函数声明不能嵌套在语句中” - IE 处于严格模式错误
- 不能在IE中使用FB身份验证
- Extjs 窗口在 IE 中不能很好地显示元素
- Jquery error() 在 chrome 和 IE 中工作,但不能在 Firefox 中工作