Ajax load from php with json parse


Ajax load from php with json parse

我使用网络服务来获取酒店的可用性,但无法让 ajax 显示多个酒店的结果。我的方法肯定是有缺陷和缓慢的 - 如何做得更好?

1) 代码(简化)在列出 6-12 家酒店的页面中为每个酒店调用:-

<script>
$(document).ready(function(){
    $("#div<%=i%>").load("hotel-avail.php?id=xxyy");
});
</script>

2) hotel-avail.php?id=xxyy 使用网络服务来获取一个 PHP 数组,$result,定义 id 为 xxyy 的酒店的可用性。网页部分的内容:-

<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 家酒店的最慢方式。请帮忙!

使用此代码作为参考,如果我错过了重点,请告诉我

 $.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");

如果对其他人有用,我会详细说明最终结果。遵循 @david-lavieri 的想法,此代码用于通过循环逐个检查酒店可用性,并在div0、div1 等中输入值:-

    $.ajax({
    type: "GET",
    url: 'hotel-avail.php', 
    data:'querystring defining data',
    success: function(data){
      $("#div<%=i%>").html(data);
    }
    });

为了开始工作,我删除了整个脚本2)酒店可用.php(请参阅上面的初始条目),并在调用Web服务的php编码末尾替换为"echo json_encode($result);"。

这将逐个检查可用性。这可能比在一个 Web 服务调用中获取所有可用性然后更新每个div 要慢得多。 下一个项目!