我使用网络服务获取酒店的可用性,但无法获得ajax以显示多个结果。我的方法肯定是有缺陷的慢 - 有多好吗?
1)代码(简化)在列出6-12家酒店的页面中呼叫EACH酒店: -
<script>
$(document).ready(function(){
$("#div<%=i%>").load("hotel-avail.php?id=xxyy");
});
</script>
2)hotel-avail.php?id = xxyy使用webservice获取PHP数组$ result,定义id为xxyy的酒店的可用性。 html部分的内容: -
<script>
var result = JSON.parse( '<?php echo json_encode($result) ?>' );
if (result.hotels.estado == 'OK') {
document.getElementById("demo").innerHTML = "Yes";
} else {
document.getElementById("demo").innerHTML = "No";
}
</script>
Availability: <span id="demo"></span>
因此,此方法将数据两次注入2个div,每个文件一个。除了看起来不好,而且不工作,它必须是迭代6-12家酒店的最慢方式。求救!
答案 0 :(得分:1)
使用此代码作为参考,如果我遗漏了这一点,请告诉我
$.ajax({
url: 'hotel-avail.php?id=xxyy',
method: 'post',
dataType: 'json',
success: function (result) {
if (result.hotels.estado == 'OK') {
document.getElementById("demo").innerHTML = "Yes";
} else {
document.getElementById("demo").innerHTML = "No";
}
}
});
这个ajax只适用于jQuery。忘了指出来。你也可以改变这段代码:
document.getElementById("demo").innerHTML = "Yes";
的
$("#demo").html("Yes");
答案 1 :(得分:0)
如果对其他人有用,我会详细说明最终结果。根据@ david-lavieri的想法,这段代码用于通过循环逐个检查酒店可用性并将值输入div0,div1等: -
$.ajax({
type: "GET",
url: 'hotel-avail.php',
data:'querystring defining data',
success: function(data){
$("#div<%=i%>").html(data);
}
});
为了开始工作,我删除了2)hotel-avail.php的整个脚本(参见我上面的初始条目)并替换为&#39; echo json_encode($ result);&#39;在php编码结束时调用webservice。
这将逐个检查可用性。它可能比在一个webservice调用中获取所有可用性然后更新每个div要慢得多。下一个项目!