我正在使用JSON执行rowcount并在我的php文件json_data2.php
中获得这样的输出:
{"limit": [{"rows":"127"}]}
现在我使用Javascript / Jquery函数调用此文件并尝试获取行(127)。我假装这样做:
function limit(keyword){
$.getJSON("json_data2.php?l="+keyword,function(data)
{
$.each(data.limit,function(data){
var rows = data.rows;
return rows;
});
});
}
但是每当我在脚本中调用该函数时,我都会得到“未定义”。有什么指针吗?
答案 0 :(得分:0)
您需要修复每个声明。添加this
以引用相关数据。
limit(keyword, function(rows) {
// your rows have loaded
});
function limit(keyword, cb){
$.getJSON("json_data2.php?l="+keyword,function(data)
{
$.each(data.limit,function(){
var rows = this.rows;
console.log(rows);
cb(rows);
});
});
}
答案 1 :(得分:0)
您的函数限制(关键字)不会返回任何值。
现有的返回运算符在$.each
您必须在限制函数的正文中添加return运算符。
答案 2 :(得分:0)
那是因为$.getJSON
是异步的,因此调用limit()
不会返回任何内容(有用)。
这样做的方法是向limit()
提供一个回调函数,如:
limit(keyword, function(rows) {
// your rows have loaded
$.each(rows, function() {
// process each row here
});
});
function limit(keyword, cb)
{
$.getJSON('json_data2.php?l=' + encodeURIComponent(keyword), function(data) {
// invoke the callback function that was passed
cb(data.limit);
});
}