我想问如何生成这样的数组, var formdata = new Array(); $(".form").each(function(){ var fieldname = $(this).attr("name"); var value = $(this).val()==null?"":$(this).val(); formdata[fieldname]=value; }); 我这样对吗?为啥调用还是出错的
我仔细看了下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即可
var formdata = {}; $(".form").each(function(n){ var fieldname = $(this).attr("name"); var value = $(this).val()==null?"":$(this).val(); formdata[fieldname] = value; });
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; } 有不明白的可以再问!
单个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 );
var formdata= {}; $(".form").each(function(n){ var fieldname = $(this).attr("name"); var value = $(this).val()==null?"":$(this).val(); formdata[fieldname] = value; });是这样的,这样才是一个对象。
不知道在说啥 {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); });最后你就得到了数组
说是只要是{name1:value1,}就可以了 这个分明就是json嘛,干嘛要变成数组?
还有你的需求是什么越看越看不懂。想要生成#10楼mydata那样的数组吗?
var arr = []; 等同于var arr = new Array();var obj = {}; 等同于var obj = new Object();
var forminfo={ abc:_abc, tef:_tef }大哥这个不是数组,是对象 数组是用[]表示的可看#25楼
估计你form里的数据时一条记录对挖。那么这么写你试试看,顺便在你的基础上做了优化var formData= {}; $(".form").each(function(n){ var fieldname = $(this).attr("name"); var value = $(this).val() || ""; formData[fieldname] = value; });
就是定义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,否则我就用字符串拼出来直接用了。
var formData= []; $(".form").each(function(n){ var data = {}; var fieldname = $(this).attr("name"); var value = $(this).val() || ""; data[fieldname] = value; }); formData.push(data);
var formdata = new Array();
$(".form").each(function(){
var fieldname = $(this).attr("name");
var value = $(this).val()==null?"":$(this).val();
formdata[fieldname]=value;
});
我这样对吗?为啥调用还是出错的
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即可
jQuery("#list2").jqGrid({
url:'server.php?q=2',
datatype: "json",
里面写了这样两句话。
所以是从ajax过来取数据的。然后,从服务器端取json要注意:{name: '1'}这种写法是错误的
{"name": "1"}这种写法才是对的。jqGrid需要一个{}数组所以服务器端返回值必须为
[{name: '1'}, {name: '2'}]这样的形式,并且前面不需要(变量=)这种形式
$(".form").each(function(n){
var fieldname = $(this).attr("name");
var value = $(this).val()==null?"":$(this).val();
formdata[fieldname] = value;
});
我引用了你的方法,使用firebug调试出来的信息也不对,看到调试的时候push进去的是数组,不是对象
{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都写成这样了
声明一个数组
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;
}
有不明白的可以再问!
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楼。lz现在需要生成一个mydata这样的对象数组
我想用postdata这个option,使用的就是类似一条{id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"}
不是json对象,而是数组,
我想遍历dom元素自动生成这个数组,始终不成功,firebug调试了NNN次了,都不能生成想要的数据类型,
arr.push({
id:$("#txtId").val(),
name:$("#txtName").val()
});
arr就是你要的最终的数据源。说明:这是json数据
id--jqgrid中的列名
$("#txtId").val()--取得文本框中的值
不能像LZ那样的遍历表单元素的,哈哈 json数据超级好用的。
var formdata= {};
$(".form").each(function(n){
var fieldname = $(this).attr("name");
var value = $(this).val()==null?"":$(this).val();
formdata[fieldname] = value;
});是这样的,这样才是一个对象。
{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);
});最后你就得到了数组
这个分明就是json嘛,干嘛要变成数组?
还有你的需求是什么越看越看不懂。想要生成#10楼mydata那样的数组吗?
abc:_abc,
tef:_tef
}大哥这个不是数组,是对象
数组是用[]表示的可看#25楼
估计你form里的数据时一条记录对挖。那么这么写你试试看,顺便在你的基础上做了优化var formData= {};
$(".form").each(function(n){
var fieldname = $(this).attr("name");
var value = $(this).val() || "";
formData[fieldname] = value;
});
这样的一个类似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,否则我就用字符串拼出来直接用了。
你#28楼给的,还是对象,不是数组。
$(".form").each(function(n){
var data = {};
var fieldname = $(this).attr("name");
var value = $(this).val() || "";
data[fieldname] = value;
});
formData.push(data);