jQuery,PHP,MySQL新插入的数据只显示在页面重新加载

时间:2015-01-26 19:52:13

标签: php jquery 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();

?>

2 个答案:

答案 0 :(得分:0)

你说的有点意思。页面加载了数据库中的内容。如果您在数据库中添加一个条目并且没有自动加载该页面,您将看不到它。现在,如果您使用表单添加条目,则可以将表单操作页面设置为同一页面。这样,当您将新值发布到数据库中时,只要在加载页面之前将新条目放在数据库中,它就会使用该新条目重新加载该页面。这将是一个快速修复,但你仍然会重新加载页面。唯一的不同之处在于,当您提交新条目时,您不需要按重新加载。

另一种选择是使用AJAX重新加载你想要在页面中重新加载的内容,它也可以在一段时间内完成。

基本上,如果您查看该页面而另一个用户添加了一个您不会看到它的条目,直到您重新加载该页面或除非您使用ajax每5秒刷新一部分页面。

这也可能意味着您在输入数据库中的值之前加载页面

确保所有html都在数据库查询之后。

答案 1 :(得分:0)

你正在发送json数据,所以尝试使用json_decode(file_get_contents(“php:// input”),数据将通过$ _POST

获得