使用下面的代码,我检索连接到谷歌地图上的标记的内容,并将其显示在容器中。现在问题是它适用于在新加载页面之前插入到数据库中的内容。将新内容插入数据库时,在重新加载页面之前不会显示任何内容。有人知道如何解决这个问题吗?
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 :(得分:0)
你说的有点意思。页面加载了数据库中的内容。如果您在数据库中添加一个条目并且没有自动加载该页面,您将看不到它。现在,如果您使用表单添加条目,则可以将表单操作页面设置为同一页面。这样,当您将新值发布到数据库中时,只要在加载页面之前将新条目放在数据库中,它就会使用该新条目重新加载该页面。这将是一个快速修复,但你仍然会重新加载页面。唯一的不同之处在于,当您提交新条目时,您不需要按重新加载。
另一种选择是使用AJAX重新加载你想要在页面中重新加载的内容,它也可以在一段时间内完成。
基本上,如果您查看该页面而另一个用户添加了一个您不会看到它的条目,直到您重新加载该页面或除非您使用ajax每5秒刷新一部分页面。
这也可能意味着您在输入数据库中的值之前加载页面
确保所有html都在数据库查询之后。
答案 1 :(得分:0)
你正在发送json数据,所以尝试使用json_decode(file_get_contents(“php:// input”),数据将通过$ _POST
获得