我想根据所选城市对数据进行排序。主页和产品页面的数据不同。因此,如果我查看主页并选择城市,首先会发送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>
答案 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>