我有一个字符串:
var str = "it's a beautiful day";
我将此字符串传递给函数:
rowSave(id, str);
rowSave()
var rowSave = function(id, str){
jQuery("#myjqgrid").jqGrid('saveRow',id,{
"succesfunc": function(response) {
return true;
},
"url": "server.aspx",
"mtype": "GET",
"extraparam": {}
});
}
我想做什么
我想
extraparam
中的参数传递,以便将其附加到网址。我不知道该怎么做。
根据Oleg的建议(见下文),添加到我的jqgrid定义中的ajaxRowOptions: {cache: false}
。
$("#myjqgrid").jqGrid({
ajaxRowOptions: {cache: false}
});
答案 0 :(得分:1)
您可以定义类似于以下内容的函数来构建额外的参数对象:
function encodeStr(str){
var s = str.split(' '), i, result = {};
for (i = 0; i < s.length; i++){
result['param' + i] = s[i];
}
return (result);
}
jQuery.ajax由jqGrid在内部使用,可以确保正确的序列化。如果遇到问题,请使用encodeURIComponent对每个参数进行编码。
无论如何,只需在指定参数时调用此对象:
"extraparam": encodeStr(str)
答案 1 :(得分:1)
代码可以是以下内容:
var rowSave = function(id, str) {
var strParts = str.split(' '), l = strParts.length, i, obj = {},
codeStart = 'A'.charCodeAt(0); // 65
for (i = 0; i < l; i++, codeStart++) {
obj[String.fromCharCode(codeStart)] = strParts[i];
}
$("#myjqgrid").jqGrid('saveRow', id, {
succesfunc: function(response) {
return true;
},
url: "server.aspx",
mtype: "GET",
extraparam: obj
});
}
首先,obj
将填充为{A: "it\'s", B: "a", C: "beautiful", D: "day"}
,然后将其用作extraparam
的值。