2015-01-26 115 views
1

通過下面的代碼,我檢索連接到谷歌地圖上的標記並將其顯示在容器中的內容。現在問題在於,在新加載頁面之前插入到數據庫中的內容工作正常。將新內容插入到數據庫中時,只有在頁面重新加載之前,纔會顯示內容。任何人有一個想法如何解決這個問題?jQuery,PHP,MySQL新插入的數據僅在頁面上顯示

google.maps.event.addListener(marker, 'click', function() { 

var poslat = marker.getPosition().lat(); 
var poslng = marker.getPosition().lng(); 

var posData = {poslat : poslat, poslng: poslng}; 

     $.ajax({ 
      type: "POST", 
      url: "getcontent.php", 
      data: posData, 
      success: function(data){ 

       $('.contentslide').slideDown('slow'); 

       $('.contentslide .container').html(data); 

     }); 
}); 


<?php 
$db_username = 'x'; 
$db_password = 'x'; 
$db_name = 'x'; 
$db_host = 'x'; 

$mysqli = new mysqli($db_host, $db_username, $db_password, $db_name); 

$rs = $mysqli->query("SELECT * FROM locations WHERE lat=$_POST[poslat]"); 

$row = $rs->fetch_array(); 

echo $row['type']; 
echo "<h1>" . $row['name'] . "</h1>" . "<br>"; 
echo "<p>" . $row['description'] . "</p>"; 

$mysqli->close(); 

?> 

回答

0

你說什麼有點讓人心動。該頁面將加載數據庫中的任何內容。如果您在數據庫中添加一個條目並且不實時載入該頁面,您將看不到它。現在,如果您使用表單添加條目,則可以將表單操作頁面設置爲同一頁面。通過這種方式,當您發佈新值以放入數據庫時​​,只要您在加載頁面之前將新條目放入數據庫,它就會使用該新條目重新加載該頁面。這將是一個快速解決方案,但你仍然會重傳該頁面。只有不同之處在於,在您提交新條目時,您不需要按重新加載。

另一種選擇是使用AJAX重新加載您想要重新加載的頁面,也可以在一段時間內完成。

Basicaly如果你在看頁面和另一個用戶添加一個條目,你不會看到它,直到你重新加載頁面,或除非你刷新你的頁面的一部分,每5秒使用Ajax。

這也可能意味着你正在加載的頁面在數據庫中輸入數值前

確保所有的HTML的DATABSE查詢之後去。

+0

你怎麼會在我的例子實現局部重載 – braunbaer 2015-01-26 21:52:38

0

您發送JSON數據,所以儘量使用json_decode(的file_get_contents(「PHP://輸入」)和數據將可通過$ _ POST

+0

在哪裏?我需要在服務器端放置json_decode(file_get_contents(「php:// input」)) – braunbaer 2015-01-26 20:39:32

+0

' $數據[ 'postlat'];' – 2015-01-26 20:50:29

相關問題