使用下面的代码,我将检索连接到google地图上的标记的内容,并将其显示在容器中。现在的问题是,它可以很好地处理在新加载页面之前插入到数据库中的内容。将新内容插入数据库时,在重新加载页面之前不会显示任何内容。有谁知道怎么解决这个问题吗?
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();
?>
发布于 2015-01-26 20:15:26
你说的话有点道理。页面将加载数据库中的所有内容。如果您在数据库中添加了一个条目,并且没有重新加载页面,您将看不到它。现在,如果您正在使用表单添加条目,您可能会将表单操作页面设置为同一页面。这样,当您将新值发布到数据库中时,只要您在加载页面之前将新条目放在数据库中,它就会用新条目重新加载该页面。这将是一个快速修复,但您仍然将重新加载页面。唯一不同的是,你不需要按reload,因为它是在你提交新条目时完成的。
另一种选择是使用AJAX仅重新加载您希望在页面中重新加载的内容,也可以按一定的间隔重新加载。
基本上,如果您正在查看页面,而另一个用户添加了一个条目,那么直到您重新加载页面或者使用ajax每隔5秒刷新页面的一部分,您才会看到它。
这也可能意味着您在数据库中输入值之前加载了页面
确保所有的html都在数据库查询之后。
发布于 2015-01-26 20:20:48
您正在发送json数据,因此尝试使用json_decode(file_get_contents("php://input") ),数据将通过$_POST可用
https://stackoverflow.com/questions/28157663
复制