2

我正在使用光滑网格并使用订阅功能在编辑单元格时获取通知

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,cargs.item进入我的回调函数,php 页面不会收到任何数据。

更新

事实证明,我以错误的方式构建了我的数据,因此它作为一个空数组返回,其中包含数据的属性。任何东西似乎都不能很好地理解这一点——JSON、Jquery、console.log——我修复了数据结构以使每一行都成为一个对象,一切都很好。

4

1 回答 1

6

看起来Array确实是空的。你可以给一个命名属性,Array就像给一个Object. 意思就是:

console.log( item.CanPublish );  // "1"
console.log( item.length );      // 0
console.log( item[0] );          // undefined

通常建议不要这样做,因为它会造成混乱。JavaScript 没有“命名数组”之类的东西。尝试坚持使用anArray Object.

于 2012-07-14T09:56:20.423 回答