本帖最后由 o2cola 于 2011-03-16 10:23:20 编辑

解决方案 »

  1.   

    这个是对象,在python等语言里叫字典。话说。你想问什么
      

  2.   

    我想问如何生成这样的数组,
    var formdata = new Array();
    $(".form").each(function(){
    var fieldname = $(this).attr("name");
    var value = $(this).val()==null?"":$(this).val();
    formdata[fieldname]=value;
    });
    我这样对吗?为啥调用还是出错的
      

  3.   

    我仔细看了下jqGrid的Demo。
    http://www.trirand.com/blog/jqgrid/jqgrid.html貌似要求你传一个json数组var datas = [];for (var index = 0; index < 4; index++) {
        var data = {};
        data["id"] = index;
        data["name"] = "test" + index;
        data["age"] = index * 2;
        datas.push(data);
    }然后把datas传给jqGrid即可
      

  4.   

    里面有个json的sample。
    jQuery("#list2").jqGrid({
        url:'server.php?q=2',
    datatype: "json",
    里面写了这样两句话。
    所以是从ajax过来取数据的。然后,从服务器端取json要注意:{name: '1'}这种写法是错误的
    {"name": "1"}这种写法才是对的。jqGrid需要一个{}数组所以服务器端返回值必须为
    [{name: '1'}, {name: '2'}]这样的形式,并且前面不需要(变量=)这种形式
      

  5.   

    var formdata = {};
    $(".form").each(function(n){
    var fieldname = $(this).attr("name");
    var value = $(this).val()==null?"":$(this).val();
    formdata[fieldname] = value;
    });
      

  6.   


    我引用了你的方法,使用firebug调试出来的信息也不对,看到调试的时候push进去的是数组,不是对象
      

  7.   

    var mydata = [
    {id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"} ,
    {id:"2",invdate:"2010-05-25",name:"test2",note:"note2",tax:"20.00",total:"320.00"},
    {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",tax:"30.00",total:"430.00"},
    {id:"4",invdate:"2007-10-04",name:"test",note:"note",tax:"10.00",total:"210.00"},
    {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",tax:"20.00",total:"320.00"},
    {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",tax:"30.00",total:"430.00"},
    {id:"7",invdate:"2007-10-04",name:"test",note:"note",tax:"10.00",total:"210.00"},
    {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"21.00",total:"320.00"},
    {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
    {id:"11",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
    {id:"12",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
    {id:"13",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
    {id:"14",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
    {id:"15",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
    {id:"16",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
    {id:"17",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
    {id:"18",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
    {id:"19",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
    {id:"21",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
    {id:"22",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
    {id:"23",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
    {id:"24",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
    {id:"25",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
    {id:"26",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
    {id:"27",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
    {id:"28",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
    {id:"29",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}
    ];
    jQuery("#list47").jqGrid({
    data: mydata,
    datatype: "local",
    height: 150,
    rowNum: 10,
    rowList: [10,20,30],
        colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
        colModel:[
        {name:'id',index:'id', width:60, sorttype:"int"},
        {name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"},
        {name:'name',index:'name', width:100},
        {name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number"},
        {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"},
        {name:'total',index:'total', width:80,align:"right",sorttype:"float"},
        {name:'note',index:'note', width:150, sortable:false}
        ],
        pager: "#plist47",
        viewrecords: true,
        caption: "Manipulating Array Data"
    });他sample都写成这样了
      

  8.   

    var temp = "控件1▓控件1的值■控件2▓控件2的值";
    声明一个数组
    var PieData = new Array([4]);
              //将数据装在数组中()
                var arry = temp.split("■");
                for (var i = 0; i < arry.length; i++) {
                    var itemarry = new Array([2]);
                    itemarry[0] = arry[i].split("▓")[0];
                    itemarry[1] = parseFloat(arry[i].split("▓")[1]);
                    PieData[i] = itemarry;
     }
    有不明白的可以再问!
      

  9.   

    单个object可以这么做
    var obj = new Object();
    obj.Name = "test";如果搂住要做成数组就加一个array
    var arr = new Array()
    arr.push(obj);如果搂住要把数组转成json的字符串,可以引用json2.js
    var jsonString =  JSON.stringify(arr);如果搂住要把json字符串转回json object依然可以应用json2.js
    var jsonObject = JSON.parse(jsonString );
     
      

  10.   


    回帖请先看#10楼。lz现在需要生成一个mydata这样的对象数组
      

  11.   


    我想用postdata这个option,使用的就是类似一条{id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"}
    不是json对象,而是数组,
    我想遍历dom元素自动生成这个数组,始终不成功,firebug调试了NNN次了,都不能生成想要的数据类型,
      

  12.   

    晓得LZ啥意思了,要将表单元素的数据显示到jqgrid中var arr=[];
    arr.push({
         id:$("#txtId").val(),
         name:$("#txtName").val()
    });
    arr就是你要的最终的数据源。说明:这是json数据
    id--jqgrid中的列名
    $("#txtId").val()--取得文本框中的值
    不能像LZ那样的遍历表单元素的,哈哈  json数据超级好用的。
      

  13.   


        var formdata= {};
        $(".form").each(function(n){
            var fieldname = $(this).attr("name");
            var value = $(this).val()==null?"":$(this).val();
            formdata[fieldname] = value;
        });是这样的,这样才是一个对象。
      

  14.   

    不知道在说啥 
    {id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"}
    这就是一个object阿,不同写法而已var obj = new Object();
    obj.id= "1";
    obj.invate = "2010-05-24";
    obj.name = "test";
    ..................
    这样你就获得了一个对象你要数组,那就建一个数组循环往里面加东西就行了
    var arr = new Array()
    arr.push(obj)
    arr.push(obj)
    arr.push(obj)
    arr.push(obj)
    你要遍历dom来做,不知道你的html用什么形式来表现
    如果用的是tablek可以这么做 
    var arr = new Array();$("table tr").each(function()
    {
     var obj = new Object();
     var cells = $(this).find("td");
     obj.id = cells[0].innerText;
     obj.invate = cells[1].innerText;
     obj.name = cells[2].innerText;
     obj.note= cells[3].innerText;
    ...........
     arr.push(obj); 
    });最后你就得到了数组
      

  15.   

    说是只要是{name1:value1,}就可以了 
        这个分明就是json嘛,干嘛要变成数组?
      

  16.   


    还有你的需求是什么越看越看不懂。想要生成#10楼mydata那样的数组吗?
      

  17.   

    var arr = []; 等同于var arr = new Array();var obj = {}; 等同于var obj = new Object();
      

  18.   

    var forminfo={
            abc:_abc,
            tef:_tef    
              }大哥这个不是数组,是对象
    数组是用[]表示的可看#25楼
      

  19.   


    估计你form里的数据时一条记录对挖。那么这么写你试试看,顺便在你的基础上做了优化var formData= {};
        $(".form").each(function(n){
            var fieldname = $(this).attr("name");
            var value = $(this).val() || "";
            formData[fieldname] = value;
        });
      

  20.   

    就是定义var data={id:"1122",name:"orge",age:"20"}
    这样的一个类似json但是API称为数组的东西
    “This array is passed directly to the url. This is associative array and can be used this way: {name1:value1…}.”——API的原话限制了data是array,否则我就用字符串拼出来直接用了。
      

  21.   

    果然api说的是对的,我说的也是对的。而是你想的不对。你需要传入数组,但是你认为的数组那个不是数组。而是对象。
    你#28楼给的,还是对象,不是数组。
      

  22.   

    var formData= [];
        $(".form").each(function(n){
            var data = {};
            var fieldname = $(this).attr("name");
            var value = $(this).val() || "";
            data[fieldname] = value;
        });
    formData.push(data);