【发布时间】:2012-02-02 04:40:34
【问题描述】:
我有一个字符串:
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中的参数传递,以便将其附加到url。
我不知道该怎么做。
根据 Oleg 的建议(见下文),在我的 jqgrid 定义中添加到 ajaxRowOptions: {cache: false}。
$("#myjqgrid").jqGrid({
ajaxRowOptions: {cache: false}
});
【问题讨论】:
-
extraparam的格式与postData的格式相同:您的值是具有 {property1: 'value1', property2: 'value2'} 等属性的对象。因此,您不仅应该在问题中定义值(“字符串中的每个单词”),还应该定义属性的名称。此外,您写道,这些值应该“附加到 url”。仅当您使用 HTTP GET 而不是在 HTTP POST 的情况下(例如默认设置)时,这些值才会附加到 URL。 -
另外你使用
"url": server.aspx这是一个语法错误。server.aspx应该被引用,url是否被引用并不重要。所以你应该使用url: 'server.aspx'、url: "server.aspx"或"url": "server.aspx"而不是"url": server.aspx。 -
@Oleg:我知道
extraparam的格式,我正在使用GET。拆分字符串后,我不知道如何分配值和不同的属性名称。有没有办法编写一个函数并遍历它们然后分配它们。我试过这样做,但它不起作用。 -
是的,可以这样做,但是您需要哪些属性的名称。我的意思是服务器部分需要知道完全相同的名称转换才能读取它。像
p1、p2、p3、...这样的名字好吗?您可以使用一个参数来代替它发送字符串的方式。在服务器上可以更容易地拆分具有已知参数名称的一个参数。是吗? -
参数名称可以是“A”、“B”、“C”……实际上需要在客户端完成。所以,它应该是格式——
"A":"It's", "B":"a", "C":"beautiful", "D":"day"
标签: javascript jquery jqgrid