我试图通过ajax将一些数据发回到同一页面。在下面的示例中,单击按钮后,我的页面中的$name
变量未更新。但是,如果我查看来自ajax(使用firebug)的响应的控制台日志,它会显示正确的html,并插入名称(即<div>Matthew</div>
) - 页面只是没有使用此响应进行更新。如何解决这个问题的任何想法将不胜感激。
我的代码是:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<?php
$name = "A name";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$name = "No name!";
}
else{
$name = $_POST["name"];
}
}
?>
<script>
$(document).ready(function(){
$("button").click(function(){
var mydata = {name: "Matthew"};
$.ajax({
type: 'POST',
data: mydata,
success: function(data){
console.log(data);
}
});
});
});
</script>
<button>Send an HTTP POST request to a page and get the result back</button>
<div id="name">
<?php echo $name;?>
</div>
</body>
</html>
答案 0 :(得分:1)
这是因为在执行ajax调用时<?php echo $name;?>
不会再次运行。您必须在成功函数中替换div的内容,如下所示:
success: function(data){
$("div").html(data);
}