在一个页面上,我向自己发送AJAX请求。在使用PHP成功获取此请求之后,我在一些MySQL数据库中向表“some_table”添加了新记录。之后在同一个成功函数中,我从这个表中选择数据并通过JQuery在页面上显示。问题是显示了所有旧记录,但没有显示我刚刚添加的记录:
$.ajax({
url: 'http://somesite.com',
type: "POST",
data: ({param1: value1, param2: value2, act: "I"}),
success: function(data){
<?php $mysqli = new mysqli("some_server", "some_database", "some_login", "some_password");
$query = "INSERT INTO some_table VALUES ("'.$_POST["param1"].'","'.$_POST["param2"].'")";
$mysqli->query($query);
$mysqli->close();
?>
alert("New record was added");
<?php echo '$("#left_region").html(\'\');';
$mysqli = new mysqli("some_server", "some_database", "some_login", "some_password");
$result = $mysqli->query("SELECT some_column1, some_column2 FROM some_table");
while($obj = $result->fetch_object()) {
echo '$("#left_region").append("<p class=\"some_class\"><a href=\"#\">'.$obj->some_column1.'</a></p>");';
}
$result->close();
$mysqli->close();
?>
}
});
有人能提示如何解决吗?
提前谢谢。
答案 0 :(得分:2)
+1给Jason P。
如果页面已经加载,您无法期望页面再次执行代码 。
以此为例:
客户端:
$.post("some_url.php",{param1: value1, param2: value2, act: "I"},
function(response){
if(isNaN(response)==="true")
$("#left_region").html(response);
else
alert("An error ocurred");
}
)
服务器端:
<?php
$mysqli = new mysqli("some_server", "some_database", "some_login", "some_password");
if($_POST['act']){
$query = "INSERT INTO some_table VALUES ("'.$_POST["param1"].'","'.$_POST["param2"].'")";
$ins=$mysqli->query($query);
if(!$ins || $mysqli->error){
echo 1;
}else{
$last_inserted_id=$mysqli->insert_id
$query=$mysqli->query("SELECT some_column1, some_column2 FROM some_table where some_column='$last_inserted_id'");
echo $query->fetch_assoc();
}
}
?>
尝试这样的事情(如果有人发现错误,请更正,谢谢)。