我使用光滑网格并使用订阅功能在编辑单元格时获取通知
grid.onCellChange.subscribe(function (e,args) {
console.log(args);
var a = data[args.row];
// var b = args.grid.getItem(args.row);
var c = args.item;
console.log(a);
// console.log(b);
console.log(c);
console.log("Field Edited:"+ cols[args.cell ].field);
$.post('action_updaterow.php',{'args[]':c},function (data){
alert(data);
})
})
a和c在控制台中显示为空数组但是(按照图片)当我查看控制台项目中的args显示为空数组但显示的项目
当数组列为空但显示值时,这意味着什么。这里真正的问题是,如果我将a
,c
或args.item
传递给我的回调函数,那么php页面不会收到任何数据。
更新
事实证明,我以错误的方式构建了数据,因此它被返回为具有数据属性的空数组。这似乎没有被任何东西理解得很好--JSON,Jquery,console.log - 我修复了数据结构,使每一行成为一个对象,一切都很好。
答案 0 :(得分:5)
看起来Array
确实是空的。您可以像Array
一样将命名属性提供给Object
。这意味着:
console.log( item.CanPublish ); // "1"
console.log( item.length ); // 0
console.log( item[0] ); // undefined
通常建议不要这样做,因为它会造成混乱。 JavaScript没有“命名数组”这样的东西。尽量坚持使用 Array
或 Object
。