这是如何基于从url获取值来处理两个ajax请求?

时间:2015-01-28 12:39:14

标签: javascript php ajax

我想根据所选城市对数据进行排序。主页和产品页面的数据不同。因此,如果我查看主页并选择城市,首先会发送ajax请求,如果我查看产品页面并选择城市,则会发送第二个ajax请求。

因此,下面的ajax代码将根据if条件发送请求,if语句中的条件告诉浏览器URL中哪个页面正在查看GET变量。我不知道下面的if语句是否是正确的语法?如果没有,实现目标的正确方法是什么?

示例网址:http://localhost/myproject/index.php?view=home-page

<script>
    function sortResult(str) {
        if (str == "") {
            document.getElementById("result").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) {
                if ($_GET["view"] == "home-page") {
                    document.getElementById("result").innerHTML = xmlhttp.responseText;
                    xmlhttp.open("GET", "home-page-new.php?q=" + str, true);
                    xmlhttp.send();
                }
                if ($_GET["view"] == "product-page") {
                    document.getElementById("result").innerHTML = xmlhttp.responseText;
                    xmlhttp.open("GET", "product-page-new.php?q=" + str, true);
                    xmlhttp.send();
                }
            }
        }
    }
</script>

这是HTML:

<select name="sortby" class="form-control" id="city"  onchange="sortResult(this.value)">
    <option value="">Choose CiTY</option>
    <option value="City 1">City 1</option>
    <option value="City 2">City 2</option>
    <option value="City 3">City 3</option>
</select>

这是主页html:

<div id="result">
  Old content will be replaced by new content here
</div>

这是产品页面html:

<div id="result">
  Old content will be replaced by new content here
</div>

1 个答案:

答案 0 :(得分:-1)

首先,你不能将$ _GET [&#34; view&#34;]直接用于javascript。 拿一个如下变量:

   <script >
    var view = <?php echo $_GET["view"]; ?>;
    ...........
if(view =="home-page")
 {
   document.getElementById("result").innerHTML=xmlhttp.responseText;
   xmlhttp.open("GET","home-page-new.php?q="+str,true);
   xmlhttp.send();
 }
 if(view =="product-page")
 {
   document.getElementById("result").innerHTML=xmlhttp.responseText;
   xmlhttp.open("GET","product-page-new.php?q="+str,true);
   xmlhttp.send();
 }
 ................
  </script>