使用dataUrl向服务器发送其他变量

时间:2013-02-18 21:28:51

标签: php jqgrid

这应该是一个简单的解决方案,但我一直无法找到任何相关信息。

我正在使用postData和editData将变量POST到服务器以进行表单编辑。此变量用于开关以选择适当的功能。 此php包含项目的所有功能。我想避免使用许多不同的php页面。

所以这一切都很好,但我找不到为dataUrl做同样事情的方法。我能找到的一个主要是使用ajaxSelectOptions,特别是数据选项。如果这是解决这个问题的合适方法,那么使用它的方法是什么?像这样?:

ajaxSelectOptions:{
    contentType: "application/json",
    dataType:'json',
    type:'POST',
    action: function(){ 
        return 'popCodeAdjust';
    }
}

3 个答案:

答案 0 :(得分:1)

通常,您可以使用data的{​​{1}}属性。代码凸轮看起来像

ajaxSelectOptions

ajaxSelectOptions: {
    type: "POST",
    data: {
        action: "popCodeAdjust";
    }
}

请参阅herehere

问题可能在于您确实需要以JSON格式发送数据。在这种情况下,您可能需要序列化参数数据的(如ajaxSelectOptions: { type: "POST", data: { action: function () { return "popCodeAdjust"; } } } )或带参数名称的(如JSON.stringify({action: actionValue}) )。在案例中,请在WCF方法中查看the answer哪个角色扮演action: JSON.stringify(actionValue)属性(BodyStyleWebMessageBodyStyle.Wrapped等)。

在jqGrid 4.4.2或更高版本中(请参阅the answermy pull requestthe 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}]);