AJAX没有显示服务器请求的数据

时间:2013-07-22 06:18:46

标签: php mysql ajax jquery

我试图让AJAX发布到单独的php文件,然后将这些数据放入div中。最终的目标是为自动更新设置一个长轮询,但宝贝步骤。

当页面加载时,div中没有​​显示任何内容。我检查了控制台,ajax确实发送了“启动”POST,但除了标题之外似乎没有收到任何回复。

FIXED 整个时间我都缺少大括号。感谢所有语法帮助人员。

这是代码

ajax调用的Php文件

<?php
require "dbc.php";

    $function = $_POST['function'];



    switch($function)
    case('initiate'):
    $search="SELECT * FROM Feedtest ORDER BY id DESC";
    $request = mysql_query($search);
    $mostrecent= mysql_fetch_array($request);
    $mostrecentid = $mostrecent['id'];
    header("Content-type: application/json");
    echo json_encode($mostrecentid);
     break; 


    case('update'):
    $search="SELECT * FROM Feedtest ORDER BY id DESC";
    $request = mysql_query($search);
    $update= mysql_fetch_array($request);
    $updateid = $update['id'];
    header("Content-type: application/json");
    echo json_encode($updateid);
     break;          
?>

进行通话的页面

<div id="datacheck"></div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

  <script>
  $(document).ready(function()  {
     $.ajax({
          type: 'POST',
          url: 'feedupdate.php',
          data: {function: 'initiate'},
          dataType: "json",
          success: function(msg) {
              $('#datacheck').html(msg);
          }

        });
  }); // document ready

</script>

2 个答案:

答案 0 :(得分:4)

你忘记了,

data: {function: 'initiate'}, // here
datatype: "json",

'function': 'initiate'

应该是

function: 'initiate'

功能是javascript中的保留字,因此您还需要将其更改为其他名称。

答案 1 :(得分:0)

“json”:将响应评估为JSON并返回JavaScript对象。 JSON数据以严格的方式解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也被拒绝;服务器应该返回null或{}的响应。 (有关正确的JSON格式的更多信息,请参阅json.org。)

你错过了,

data: {function: 'initiate'},
datatype: "json",