1、ajax传值并返回后台数据
/// 举例如下:
/// 视图名称:View_Name
/// 参数json:[{"ParamName":"NO","ParamValue":"2"},{"ParamName":"Name","ParamValue":"张三"}]
/// "[{\"ParamName\":\"NO\",\"ParamValue\":\"2\"},{\"ParamName\":\"Name\",\"ParamValue\":\"张三\"}]"
(1)url:后台接口地址 viewname表名 viewparams参数
(2)Json.stringify():序列化对象即将对象转换为字符串
(3)res:后台返回值
2、$.each()循环遍历
(1)eval():常用于将json字符串解析为json对象
(2)index:数字索引
(3)val:索引对应的值
(4)var infoids[]:数组
(5)containts():在此例子中通过contains去重(此处no会相同,注意去重)
3、var xItem={}函数
(1)通过Json方式定义一个函数对象,该函数对象体为空,但不能说对象为空
4、此例子中遍历clstr的逻辑解析
(1)将infoids数组里的no值赋给xItem对象的no
(2)判断clstr[]里的no和xitem对象的no是否相同
(3)相同则将clstr[]的name值赋给Xitem对象的name,Xitem的number自加1
5、push():向数组的末尾添加一个或多个元素,并返回新的长度
(1)在遍历完一个xItem的对象(一轮clstr[]的no后),将xitem添加到pcdata数组中
AjaxPost(url, { viewname: viewname, viewparams: JSON.stringify(viewparams) }, function (res) {
var pcdata = [];
var infoids = [];
var clStr = eval('(' + res + ')');
$.each(clStr, function (index, val) {
if (!infoids.Contains(val.NO))
infoids.push(val.NO);
});
for (var i = 0; i < infoids.length; i++) {
var xItem = {};
xItem.no = infoids[i];
xItem.name = "";
xItem.number = 0;
for (var j = 0; j < clStr.length; j++) {
if (clStr[j].NO == xItem.no) {
xItem.name = clStr[j].NAME;
xItem.number = xItem.number + 1;
}
}
pcdata.push(xItem);
}
}