是否可以使用jQuery异步加载PHP?

时间:2017-03-19 15:16:30

标签: javascript php jquery html ajax

我有一个PHP页面view.php,其中包含另一个PHP页面api.php 现在,当用户请求某个文件如view.php?id=xyz时,会向api.php?id=xyz发送一个请求,并在view.php中提取并显示一些数据

当发生这种情况时,页面加载时间会随着api.php从远程服务器请求一些数据而严重增加。

是否可以加载整个view.php然后用户点击按钮请求api.php?

这就是我想要做的事情:

view.php

<?php
// Load Some Content
echo '<div class="click">Click Here</div>';
// Don't Load The Following Div Unless User Clicks The Above Div
echo '<div class="load">';
include 'api.php';
echo '</div>';
// Load Some Content
?>

我想加载整个view.php而不加载api.php,但它应该包含在view.php中,一旦用户点击Click Here div,它就会加载api.php }

3 个答案:

答案 0 :(得分:0)

您需要一个AJAX请求来异步请求来自api.php的数据。我会更改我的view.php文件以输出这样一个简单的表单:

<div class="click" onclick="fetch">Click Here</div>
<div id="load"></div>

然后使用JS从api.php资源中获取数据。

<script>
    function fetch(){
        var request = new XMLHttpRequest();
        request.open('GET', 'api.php', true);

        request.onload = function() {
            if (request.status >= 200 && request.status < 400) {
                //assuming response from api.php is html
                document.getElementById('load').innerHTML = request.responseText;
            }
        };

        request.send();
    }
</script>

答案 1 :(得分:0)

您可以使用以下AJAX脚本来处理它。您必须包含jquery库才能工作。

 $.ajax({
    url: "api.php",
    type: "post",
    data: {id:xyz},
    success: function (response) {
       // you will get response from your php page (what you echo or print)   
         $('#divid').html(response); 
    },
    error: function(jqXHR, textStatus, errorThrown) {
       console.log(textStatus, errorThrown);
    }
});

答案 2 :(得分:0)

您可以使用Ajax从api.php加载数据。

<强> view.php

pBorder