AJAX / PHP重新加载页面的一部分

时间:2014-04-30 20:01:19

标签: javascript php jquery ajax

我在PHP中创建了一个RESTful API。不久之后,我可以通过调用http://api.website.com/addInfos

这样的地址来注册一些信息

此请求是POST请求。这是我的方法:

档案:api.php

<?php

/* Page api.php */

private function addInfos()
{

// Check if it's a POST request and if all fields are correct
// Insert data in my MySQL database

// TODO: make an automatic refresh for page named infos.php

}

?>

第二个文件,其中数据显示在我的数据库中:

文件:infos.php

<?php

/* Page infos.php */

// Connection to database
// Prepare the request using PDO
// Execute the request
// Display infos in a while loop

?>

我的问题是:如何在名为&#34; AddInfos&#34;的函数之后刷新数据显示的部分代码。我的API被称为?

编辑1:

这是我能做的:

文件:index.php

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <title></title>

    <script src="js/jquery.js"></script>

</head>

<body>

<div id="infos"></div>

<script>

        function displayInfo(r) { 

            $.post("infos.php",
               { refresh : r},
               function(data){
                 //alert("Data Loaded: " +  data);
                 $("#infos").html(data); 

               }
             );
        } 

        $(document).ready(function() {
            displayInfo(1); 

            $('a.info_link_text').click(function(){
                alert($(this).text());
            });

        });

    </script>

</body>

</html>

文件:infos.php

<?php

require_once('database.php');

 if(isset($_POST['refresh'])){

        $selectInfos = getAllInfos();
        $selectInfos->execute();

        echo "<table>";
                    echo "<th>User</th>";
                    echo "<th>Email</th>";

        while($row = $selectInfos->fetch(PDO::FETCH_OBJ)){

                $fullname = $row->user_fullname;
                $email = $row->user_email;

                    echo "<tr>";
                        echo "<td>".$fullname."</td>";
                        echo "<td>".$email."</td>";
                    echo "</tr>";


        }

        echo "</table>";    
}

?>

当我加载index.php时,我可以从页面infos.php获取信息。但我真的不知道如何在方法&#34; addInfos&#34;我的API被调用了,因为我需要在infos.php上发出一个POST请求(它没关系)但是把结果数据放在index.php上(不行,我不知道怎么做)。拜托,你能让我知道如何实现这个目标吗?

非常感谢你的帮助。

祝你好运, Lapinou。

1 个答案:

答案 0 :(得分:1)

我认为你需要的是一个基于WebSocket HTML5的库。服务器可以保留并同时向所有连接的客户端发送通知。然后在你的javascript处理程序中,你可以处理任何你想要的东西。

在PHP中,您可以尝试这些示例WebSocket HTML5 PHP on Google

另一种方法是定期向服务器发送多个REST查询以更新您的页面,但似乎您只想要实时更新。