这应该是一个简单的解决方案,但我一直无法找到任何相关信息。
我正在使用postData和editData将变量POST到服务器以进行表单编辑。此变量用于开关以选择适当的功能。 此php包含项目的所有功能。我想避免使用许多不同的php页面。
所以这一切都很好,但我找不到为dataUrl做同样事情的方法。我能找到的一个主要是使用ajaxSelectOptions,特别是数据选项。如果这是解决这个问题的合适方法,那么使用它的方法是什么?像这样?:
ajaxSelectOptions:{
contentType: "application/json",
dataType:'json',
type:'POST',
action: function(){
return 'popCodeAdjust';
}
}
答案 0 :(得分:1)
通常,您可以使用data
的{{1}}属性。代码凸轮看起来像
ajaxSelectOptions
或
ajaxSelectOptions: {
type: "POST",
data: {
action: "popCodeAdjust";
}
}
问题可能在于您确实需要以JSON格式发送数据。在这种情况下,您可能需要序列化参数数据的值(如ajaxSelectOptions: {
type: "POST",
data: {
action: function () {
return "popCodeAdjust";
}
}
}
)或带参数名称的值(如JSON.stringify({action: actionValue})
)。在案例中,请在WCF方法中查看the answer哪个角色扮演action: JSON.stringify(actionValue)
属性(BodyStyle
,WebMessageBodyStyle.Wrapped
等)。
在jqGrid 4.4.2或更高版本中(请参阅the answer,my pull request和the fix),您可以使用WebMessageBodyStyle.WrappedResponse
作为功能。您可以在postData
ajaxSelectOptions
您可以在ajaxSelectOptions: {
contentType: "application/json",
dataType: "json",
type: "POST",
postData: function (rowid, value, name) {
return JSON.stringify({action: "popCodeAdjust"});
//or depend on the relinquishment of the server side
//return {action: JSON.stringify("popCodeAdjust")});
}
}
内部指定postData
(请参阅here)。
答案 1 :(得分:0)
怎么样?
$.ajax({
type: 'POST',
url: 'url',
data: { varName: JSON.stringify(arrayValues) },
dataType: 'json',
success: function(msg) {...},
error: function(res, status, exeption) {...}
});
服务器端:
$var = json_decode($_POST['varName'], true);
答案 2 :(得分:0)
在网格设置中,它将是:
postData: { KeyName: KeyValue },
你会看到这个额外的参数与你的POST一起出去。
下面的示例将设置postData值(如果要更改),然后触发重新加载网格。
$('#gridName').jqGrid('setGridParam', { postData: { UserName: userName }).trigger('reloadGrid', [{ page: 1}]);