返回当前页面时,jQuery ajax响应不显示

时间:2015-06-10 22:16:59

标签: javascript php jquery ajax

我试图通过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>

1 个答案:

答案 0 :(得分:1)

这是因为在执行ajax调用时<?php echo $name;?>不会再次运行。您必须在成功函数中替换div的内容,如下所示:

success: function(data){
            $("div").html(data);
          }