2014-04-30 89 views
0

我在PHP中創建了一個RESTful API。很快,我可以通過調用類似http://api.website.com/addInfosAJAX/PHP重新加載頁面的一部分

的地址來註冊一些信息。此請求是一個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 

?> 

我的問題是:如何刷新顯示數據後的代碼部分我的API的名爲「AddInfos」的離子被稱爲?

編輯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中獲取相關信息。但我真的不知道如何調用我的API的addInfos方法,因爲我需要在infos.php上創建一個POST請求(沒關係),但將結果數據放在index.php(不好,我不知道該怎麼做)。請,你能讓我知道如何做到這一點?

非常感謝您的幫助。

此致敬禮, 拉皮諾。

+0

您可以閱讀如何使用帶HTML的HTML DOM,如何訪問命名div等。 – developerwjk

+0

好的。但是,即使這是兩個不同的頁面,是否可以做到這一點?因爲我知道如何在AJAX/JQuery的另一個頁面上執行POST請求,然後獲取響應數據並將其顯示在特定的應答器中

。但在這裏,我真的不知道如何從我的API方法訪問並刷新頁面infos.php。 – Lapinou

+0

哇!我想我在寫我以前的答案時找到了解決方案!如果有效,我會更新我的帖子! – Lapinou

回答

1

我想你需要的是一個基於WebSocket HTML5的庫。服務器可以保留併發送通知給同時連接的所有客戶端。然後在你的JavaScript處理程序中,你可以處理任何你想要的東西。

在PHP中,你可以試試這些例子WebSocket HTML5 PHP on Google

另一個辦法是定期發送多個REST查詢到服務器以更新頁面,但似乎你想要的實時更新只。

+0

非常感謝!這正是我需要的! :d – Lapinou