试图将php数组传递给Javascript
Trying to pass php array to Javascript
我已经疯狂地在网上搜索了一天,试图弄清楚为什么我的javascript代码不起作用。我正在尝试使用JSON将一个数组从PHP传递到Javascript。之后,我想在其他函数中使用它,从而使数组或变量具有全局性。但我一直无法让它工作,这是我迄今为止的代码:
data = [];
$(document).ready(function() {
$.getJSON('database.php', function(phpdata){
// vad du vill göra här, allt retuneras i data-variabeln
console.log(phpdata);
data[0] = phpdata[0];
console.log(data[0]);
});
console.log(data);
有什么想法吗?
当调用$.getJSON
时,JS引擎将与下一条指令并行,这里是console.log(data);
。这种行为是由于$.getJson
的异步性造成的。
由于下一步是在下一毫秒内计算和执行的,因此网页没有被完全请求,数据仍处于其初始化值([]
)。
你能做什么:
将所有必须对数据执行某些操作的指令放在另一个函数中,并在匿名函数function(phpdata) { ... }
上调用它。
像这样:
function dataLoaded(data) {
// show data in dom elements
// work with data, e.g. check for data["error"] = true or show the username from data["username"]
}
data = [];
$(document).ready(function() {
// Load JSON from server, wait for it and then work with it in dataLoaded(..)
$.getJSON('database.php', function(phpdata){
dataLoaded(phpdata);
});
}
// this is wrong:
// console.log(data);
要求database.php在JSON数据类型中返回一个JSON数组。请参阅php手册上的json_encode
和header("CONTENT-TYPE: application/json")
。
感谢评论说:失败的区分大小写和数据类型
database.php做什么?它可能应该输出一个JSON编码的字符串。
http://us3.php.net/json_encode
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)