2015-01-26 120 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

相关问题