通过jQuery AJAX设置和获取PHP变量 - javascript

我正在尝试为自己和朋友建立一个基本的聊天系统。这很简单,但是,ajax极大地困扰了我。我使用ajax请求php页面,该页面设置了用户名,也是我上次下载聊天时的页面。但是,我不知道如何阅读php页面回显的内容。我已经在线检查过,但是变化太多,这让我更加困惑。有人可以给我一些指导吗?

Scripts.js(已链接jQuery)

// on document ready + called every second

 $.ajax({
            url: 'download.php',
            type: 'REQUEST',
            datatype: 'json',
            data: ({
                last_downloaded: latestTimestamp,
                username: username
            }),
            success: function (data) {
                console.log(data.message[0].time);
                // Uncaught TypeError: Cannot read property '0' of undefined 
                // how do I get the time from the json?
                // {"message":{"chat":"Hello, world!","time":"2014-05-09 17:32:00,"username":"Josue"},"message":{"chat":"This is my second message.","time":"2014-05-09 17:32:05,"username":"Josue"}}

            }
        });

            latestTimestamp = data.message[0].time;
            downloadingTimer = setTimeout(actuate, timeoutValues[currentTimeoutIndex]);

    }

download.php

这是我的php页面作为普通字符串(现在已正确格式化为JSON)的内容:

[
   {
      "chat":"Hello, world!",
      "time":"2014-05-09 17:32:00",
       "username":"Josue"
   },
   {
      "chat":"This is my second message.",
      "time":"2014-05-09 17:32:05",
      "username":"Josue"
   }
]

我在页面顶部有header("Content-Type: application/json");。我做错了吗?

参考方案

您的JSON响应格式错误。 datestamp之后的逗号在引号内,而不是在引号外:

      "time":"2014-05-09 17:32:00,"      username":"Josue"
   },

另外,您应该使用方括号来表示消息数组。您的JSON应该如下所示:

{ "message": [
   {
      "chat":"Hello, world!",
      "time":"2014-05-09 17:32:00",
       "username":"Josue"
   },
   {
      "chat":"This is my second message.",
      "time":"2014-05-09 17:32:05",
      "username":"Josue"
   }
]
}

您可以使用json_encode()函数将PHP数组或对象转换为JSON字符串:

<?php
    $my_arr = array("message" => array());
    $my_arr["message"][] = array("chat" => "Hello, World!", "time" => "2014-05-09 17:32:05", "username" => "Josue");

    echo json_encode($my_arr);
?>

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

JavaScript中的字符串评估函数 - javascript

            JavaScript中是否有任何内置函数,例如Python中的eval内置函数?注意:eval函数将方程式作为字符串并返回结果。例如,假设变量x为2,则eval("2x+5")返回9。 参考方案 是的,JavaScript中也有eval函数。此外,该声明应有效用于评估,即eval("2*x+5"…

如何在JQuery中操作JSONArray - javascript

我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…

使用C#执行JavaScript页面 - javascript

我正在尝试使用C#抓取一个网站。在此过程中的某个时候,网站返回了我需要执行的JavaScript页面,以便它将生成一些参数,然后使用所生成的参数作为查询变量来发布请求。这是JavaScript文件https://jsfiddle.net/7aw5vr59/浏览器生成的结果文件如下所示:<imimxxxyyy id="ActiveX"…