客户端上的PHP到JSON

客户端上的PHP到JSON,php,javascript,json,variables,Php,Javascript,Json,Variables,我正在使用“Jquery Week Calendar”构建一个日历应用程序 我有一个名为“dates”的MSSQL DB a表和以下字段: 身份证 开始 结束 头衔 我想用PHP查询这个数据库,然后将结果传递给Javascript,Javascript将在浏览器中呈现事件 Javascript需要接收JSON格式的事件详细信息,如下例所示: {"id":1,"start": 2010-10-09T13:00:00,"end":2010-10-09T14:00:00,"title":"Lunch

我正在使用“Jquery Week Calendar”构建一个日历应用程序

我有一个名为“dates”的MSSQL DB a表和以下字段:

身份证 开始 结束 头衔

我想用PHP查询这个数据库,然后将结果传递给Javascript,Javascript将在浏览器中呈现事件

Javascript需要接收JSON格式的事件详细信息,如下例所示:

{"id":1,"start": 2010-10-09T13:00:00,"end":2010-10-09T14:00:00,"title":"Lunch with Mike"},
{"id":2,"start": 2010-10-10T13:00:00,"end": 2010-10-10T14:00:00, "title":"Dev Meeting"}
到目前为止,为了保持简单,我一次只从数据库返回一行,但是,我需要应用程序能够呈现存储在数据库中的多个事件

我已经尝试使用
json\u encode()
将值放入一个变量,并将它们传递给一个名为DB\u events的Javascript变量-如果我在客户端的警报框中返回DB\u事件,我会看到以下内容:

{"id":1, "start":2010-10-09T13:00:00, "end":2010-10-09T14:00:00,"title":"Lunch with Mike"}
这看起来不错,但当我在代码中执行此操作时:

events : [DB_events]
它不起作用:(

如果我将PHP从等式中去掉,在客户端执行以下操作:

var DB_events = {"id":1, "start":2010-10-09T13:00:00, "end":2010-10-09T14:00:00,"title":"Lunch with Mike"};
var DB_events = {"id":JS_id, "start":JS_start, "end":JS_end,"title":JS_title};

events : [DB_events]
并在警报框中返回DB_事件,我得到:

[object] [Object]
但当我这么做的时候:

events : [DB_events]
它起作用了

回到PHP

如果我将SQL结果放入PHP变量中,如下所示:

$id = id;
$start = start;
$end = end;
$title = title;
并将这些变量传递给以下JS变量:

JS_id
JS_start
JS_end
JS_title
并在客户端执行此操作:

var DB_events = {"id":1, "start":2010-10-09T13:00:00, "end":2010-10-09T14:00:00,"title":"Lunch with Mike"};
var DB_events = {"id":JS_id, "start":JS_start, "end":JS_end,"title":JS_title};

events : [DB_events]
这也行得通

正如你可能知道的,我对这一点还不熟悉,可能缺少一些非常基本的东西

任何帮助、建议或信息都将不胜感激:)

非常感谢


蒂姆

你用过jsocn解码吗

您可以分割结果并使其不同于变量,如开始、结束、事件等

  • 当您获得对象的字符串表示形式时,意味着您已将其导出为字符串而不是对象

  • 当您获得
    [object][object]
    时,意味着它现在是一个对象,这是正确的

  • 如果从URL获取JSON,则可以使用JSONP执行此操作:

    // send the request via <script> tag
    var src    = "..."; // url of the JSON output
    var head   = document.getElementsByTagName("head")[0];
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", src); 
    head.appendChild(script);
    
    或者通过在页面中使用内联
    块直接从PHP传递它:

    echo "<script>";
    echo "var DB_events = " . json_encode( ... ) . ";";
    echo "</script>";
    
    echo”“;
    echo“var DB_events=”。json_编码(…)。";";
    回声“;
    

    太好了,您如何在客户端将其从php传递到JS?或者这行代码会从php设置JS变量吗?看起来很好,我在英国时间,所以早上第一件事就是尝试一下-谢谢:-)