使用json解析从php加载Ajax

时间:2016-04-23 21:53:15

标签: php jquery json ajax

我使用网络服务获取酒店的可用性,但无法获得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家酒店的最慢方式。求救!

2 个答案:

答案 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要慢得多。下一个项目!