【发布时间】:2011-02-14 19:35:32
【问题描述】:
所以我正在构建一个 Web 应用程序,并且我有一个 ajax 请求,它会 ping 一个数据库(或数据库缓存)并回显 json 的一个重要内容。我对 json 完全陌生,当 php 从数据库中提取时,我回显 json_encode($databaseResults),然后它在我的 html 页面中显示为一个长字符串。我的问题是,我如何转换它并将我需要的部分提取成一个好的格式?
谢谢!
页面中的 Json 结果如下所示:
"[{\"currentcall\":\"1\",\"timecall\":\"15:30\",\"etaTime\":\"15:35\",\"departmentID\ ":\"1\",\"memberID\":\"1\",\"callinnum\":\"1\",\"location\":\"Fire House\",\"billed\" :\"N\",\"日期\":\"2\\/12\\/11\",\"firstName\":\"Phil\",\"lastName\":\"asdf\" ,\"email\":\"pasdf@gmail.com\",\"homephone\":\"+19111111111\",\"手机\":\"+11234567891\",\"cellphone2\":null ,\"workphone\":null,\"phonenumber5\":null,\"phonenumber6\":null,\"streetAddress\":\"10 asdfnt Dr\",\"city\":\"\", \"用户名\":\"pgsdfg\",\"密码\":\"0623ab6b6b7dsasd3834799fbf2a08529d\",\"admin\":\"Y\",\"资格\":\"内饰\",\" rank\":null,\"cpr\":null,\"emt\":null,\"training\":null,\"datejoined\":null,\"dateactive\":null,\"state\ ":\"DE\",\"zip\":\"51264\",\"pending\":\"NO\",\"defaultETA\":\"7\",\"apparatus\": \"asdKE-286\"}]"
可能有多个结果...这只是一个结果
编辑:
基本上,我试图将数组中的一堆行传递到一个 html 文件中,并且只取出我需要的数据并对其进行格式化。我不知道 json 是否是最好的方法,我只是想出了一个解决方案。因此,如果有人有更好的解决方案,那就太棒了。
编辑2: 这是我发出请求的 jquery,php 只有 echo json_encode ($DBResults);
function getResponder(){
var responders = $.ajax({
type : "POST",
url: "/index.php/callresponse/get_responders",
success: function(html){
$("#ajaxDiv").html(html);
}
});
setTimeout("getResponder()", 10000);
}
【问题讨论】:
-
databaseResults 是什么样子的?据我了解,这只是一个字符串,我正确吗?如果您只返回一个字符串,那么使用 json 有什么意义? json 的好处是你可以在一个字符串中传递多个值,然后在 javascript 端将它们转换为对象/数组。
-
从您的代码示例的外观来看,您应该从您的 php 脚本中传递纯 html 而不是 JSON。如果您想使用 json,您可能需要使用 jQuery getJSON 函数。但是,如果您使用 json 替代方案,则必须定义要打印数据的位置,您不能只将 #ajaxDiv 的 innerHTML 设置为 json 字符串而不是对象。
-
嗯,好的,谢谢。我将研究 jQuery getJson 或将其直接放入 html
-
你确定你没有返回很多值吗?你真的想把密码哈希等放在表中吗?您返回的值不少于 35 个。我打算用你的数据写一个例子,但我会等着看这是否真的是你想要的。
-
嗯,我想我不需要所有这些。我会相应地调整我的sql语句,但我真的只需要firstName、lastName、Location、defaultETA和设备