0

这应该是一个简单的修复,但我只是无法找到任何关于它的东西。

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

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

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

3 回答 3

1

一般来说,您可以使用data. ajaxSelectOptions代码凸轮看起来像

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

或者

ajaxSelectOptions: {
    type: "POST",
    data: {
        action: function () {
            return "popCodeAdjust";
        }
    }
}

这里这里

如果您确实需要以 JSON 格式发送数据,则可能会出现问题。在这种情况下,您可能需要序列化参数数据的JSON.stringify({action: actionValue})(如)或带有参数名称的值(如action: JSON.stringify(actionValue))。请参阅案例中 WCF 方法中角色扮演属性(等)的答案。BodyStyleWebMessageBodyStyle.WrappedWebMessageBodyStyle.WrappedResponse

在 jqGrid 4.4.2 或更高版本(请参阅答案我的拉取请求修复)中,您可以将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在内部指定editoptions(参见此处)。

于 2013-02-19T07:32:57.260 回答
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);
于 2013-02-18T22:10:33.040 回答
0

在您的网格设置中,它将是:

postData: { KeyName: KeyValue },

你会看到这个额外的参数随着你的 POST 消失。

下面的示例将设置 postData 值(如果要更改),然后触发网格的重新加载。

$('#gridName').jqGrid('setGridParam', { postData: { UserName: userName }).trigger('reloadGrid', [{ page: 1}]);
于 2013-02-18T23:03:55.370 回答