首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax和PHP支持的下拉列表在Internet Explorer中不起作用

Ajax和PHP支持的下拉列表在Internet Explorer中不起作用
EN

Stack Overflow用户
提问于 2011-10-09 22:56:46
回答 1查看 521关注 0票数 0

嗨,我在IE的ajax脚本中遇到了一个问题,它似乎在所有其他浏览器中都工作得很好。我正在尝试重写一个下拉列表,根据用户是想租房还是想买房来显示不同的价格范围,下面是我解决这个问题的方法

标题部分中的函数:

代码语言:javascript
复制
<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代码:

代码语言:javascript
复制
<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 &amp; 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'>&pound;50,000</option>
            <option value='75000'>&pound;75,000</option>
            <option value='100000'>&pound;100,000</option>
            <option value='125000'>&pound;125,000</option>
            <option value='150000'>&pound;150,000</option>
            <option value='175000'>&pound;175,000</option>
            <option value='200000'>&pound;200,000</option>
            <option value='250000'>&pound;250,000</option>
            <option value='300000'>&pound;300,000</option>
            <option value='400000'>&pound;400,000</option>
            <option value='500000'>&pound;500,000</option>
            <option value='750000'>&pound;750,000</option>
            <option value='1000000'>&pound;1,000,000</option>
            <option value='1500000'>&pound;1,500,000</option>
        </select>
    </td>
    <td>
        <select name='maxprice' style="width:120px">
            <option selected='selected' value=''>max price</option>
            <option value='50000'>&pound;50,000</option>
            <option value='75000'>&pound;75,000</option>
            <option value='100000'>&pound;100,000</option>
            <option value='125000'>&pound;125,000</option>
            <option value='150000'>&pound;150,000</option>
            <option value='175000'>&pound;175,000</option>
            <option value='200000'>&pound;200,000</option>
            <option value='250000'>&pound;250,000</option>
            <option value='300000'>&pound;300,000</option>
            <option value='400000'>&pound;400,000</option>
            <option value='500000'>&pound;500,000</option>
            <option value='750000'>&pound;750,000</option>
            <option value='1000000'>&pound;1,000,000</option>
            <option value='1500000'>&pound;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文件,它决定是否回显情侣价格范围或上限价格范围:

代码语言:javascript
复制
<?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'>&pound;250</option>
        <option value='500'>&pound;500</option>
        <option value='750'>&pound;750</option>
        <option value='1000'>&pound;1000</option>
        <option value='1250'>&pound;1250</option>
        <option value='1500'>&pound;1500</option>
        <option value='2000'>&pound;2000</option>
    </select>
</td>
<td>
    <select name='maxprice' style='width:120px'>
        <option selected='selected' value=''>max price</option>
        <option value='250'>&pound;250</option>
        <option value='500'>&pound;500</option>
        <option value='750'>&pound;750</option>
        <option value='1000'>&pound;1000</option>
        <option value='1250'>&pound;1250</option>
        <option value='1500'>&pound;1500</option>
        <option value='2000'>&pound;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'>&pound;50,000</option>
            <option value='75000'>&pound;75,000</option>
            <option value='100000'>&pound;100,000</option>
            <option value='125000'>&pound;125,000</option>
            <option value='150000'>&pound;150,000</option>
            <option value='175000'>&pound;175,000</option>
            <option value='200000'>&pound;200,000</option>
            <option value='250000'>&pound;250,000</option>
            <option value='300000'>&pound;300,000</option>
            <option value='400000'>&pound;400,000</option>
            <option value='500000'>&pound;500,000</option>
            <option value='750000'>&pound;750,000</option>
            <option value='1000000'>&pound;1,000,000</option>
            <option value='1500000'>&pound;1,500,000</option>
    </select>
</td>
<td>
    <select name='maxprice' style='width:120px'>
        <option selected='selected' value=''>maximum price</option>
        <option value='50000'>&pound;50,000</option>
        <option value='75000'>&pound;75,000</option>
        <option value='100000'>&pound;100,000</option>
        <option value='125000'>&pound;125,000</option>
        <option value='150000'>&pound;150,000</option>
        <option value='175000'>&pound;175,000</option>
        <option value='200000'>&pound;200,000</option>
        <option value='250000'>&pound;250,000</option>
        <option value='300000'>&pound;300,000</option>
        <option value='400000'>&pound;400,000</option>
        <option value='500000'>&pound;500,000</option>
        <option value='750000'>&pound;750,000</option>
        <option value='1000000'>&pound;1,000,000</option>
        <option value='1500000'>&pound;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中不行,我看到过类似的问题,但没有什么可以解决这个特定的问题。

在这方面的任何帮助或建议都将非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-11 17:31:14

正在将评论提升为答案:

我建议你加载这两个集合,并通过隐藏或显示来在它们之间切换:

代码语言:javascript
复制
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"; 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7704356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档