如何将json数据添加到服务器并在单击按钮后立即将其显示在jqgrid中

发布于 2024-10-30 17:05:32 字数 616 浏览 1 评论 0原文

我有一个正在运行的程序,它将把我的数据从服务器显示到 jqgrid。我现在想要的是将数据保存到服务器。这是我的代码:

function Add(){
   var datas = {
   "ID": "xyz",
   "operation": "Add",
   "fields": ["code", "desc", "type"],
   "values": [$('#code').val(), $('#desc').val(), $('#type').val() ]
}

$('#tblData1').setGridParam({
    url:'myni.php?path=' + encodeURI('this/update') + '&json=' +(JSON.stringify(datas)), 
    datatype: Settings.ajaxDataType,  
});
    $('#tblData1').trigger('reloadGrid'); 
}

此代码返回错误消息“异常错误:服务器错误:未指定参数‘操作’。”我已经设置了一个操作,但我不知道出了什么问题。有人可以帮我解决这个问题吗?请。

我想知道如何在单击按钮后将数据添加到服务器并立即将其显示在jqgrid中。请...

i have a running program that will display my data from a server to the jqgrid. what i want now is to save data to the server. here's my code:

function Add(){
   var datas = {
   "ID": "xyz",
   "operation": "Add",
   "fields": ["code", "desc", "type"],
   "values": [$('#code').val(), $('#desc').val(), $('#type').val() ]
}

$('#tblData1').setGridParam({
    url:'myni.php?path=' + encodeURI('this/update') + '&json=' +(JSON.stringify(datas)), 
    datatype: Settings.ajaxDataType,  
});
    $('#tblData1').trigger('reloadGrid'); 
}

this codes returns an error message "Exception error: Server Error: Parameter 'operation' is not specified." i already set an operation and i don't know what went wrong. can somebody help me fix this? please.

i want to know how to add data to the server after clicking the button and display it in the jqgrid right away. Please...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明天过后 2024-11-06 17:05:32

函数Add设置本地变量datas,该变量仅存在于Add函数内部。也许您想要的是从函数返回值并将其设置为 setGridParam 调用的使用范围中存在的变量。

下一个问题是,在将其作为 URL 的一部分插入之前,您应该根据 encodeURIComponentJSON.stringify(datas) 进行编码。您还可以使用 jQuery.param 函数代替:

url:'myni.php?' + $.param({path:'this/update', json:JSON.stringify(datas)})

如果您使用 HTTP GET (mtype:'GET') 对于对服务器的请求,我建议您最好使用 jqGrid 的 postData 参数,其中包含函数:

$("list").jqGrid({
    url:'myni.php',
    postData: {
        path: 'this/update',
        json: function() {
            return JSON.stringify({
                ID: "xyz",
                operation: "Add",
                fields: ["code", "desc", "type"],
                values: [$('#code').val(), $('#desc').val(), $('#type').val()]
            });
        }
    },
    // other parameters
});

postData 参数的属性将如果使用 mtype:'GET',则将其添加到 URL(如果需要,将插入“?”和“&”);如果使用 mtype:'GET',则将其添加到发布数据的正文中代码> mtype:'POST'。

postData 内部使用函数的优点是,相应的值(如 json 参数的值)将在每个 ajax 请求上计算 。如果用户更改排序顺序或选择另一个页面,则会向服务器发送 ajax 请求。因此,在这种情况下,必须确定 postData 属性以及 $('#code').val() 中的当前值,$('#desc').val()$('#type').val() 将插入请求中。

如果 path 参数的值不应该是静态的,您也可以将其设置为函数。

如果使用包含函数的 postData,您的代码可以简化为 $('#tblData1').setGridParam({datatype: Settings.ajaxDataType}).trigger('reloadGrid')< /代码>。

有关 postData 内部函数的使用的更多信息,您可以阅读 此处

The function Add set local variable datas which exist only inside of the Add function. Probably what you want is to return the value from the function and set to the variable existing in the scope of usage the setGridParam call.

The next problem is that you should encode JSON.stringify(datas) with respect of encodeURIComponent before inserting it as the part of URL. You can also use jQuery.param function instead:

url:'myni.php?' + $.param({path:'this/update', json:JSON.stringify(datas)})

If you use HTTP GET (mtype:'GET') for requests to the server I would recommend you better to use postData parameter of jqGrid which contain functions:

$("list").jqGrid({
    url:'myni.php',
    postData: {
        path: 'this/update',
        json: function() {
            return JSON.stringify({
                ID: "xyz",
                operation: "Add",
                fields: ["code", "desc", "type"],
                values: [$('#code').val(), $('#desc').val(), $('#type').val()]
            });
        }
    },
    // other parameters
});

The properties of postData parameter will be added to the URL ('?' and '&' will be inserted if needed) in case of the usage of mtype:'GET' or to the body of the posted data in case of mtype:'POST'.

The advantage of the usage functions inside of postData is that the corresponding values (like the value of json parameter) will be calculated on every ajax request. If the user changes the sort order or chooses another page the ajax request to the server will be send. So in the case the postData properties must be determined and the current values from $('#code').val(), $('#desc').val() and $('#type').val() will be inserted in the request.

If the value of path parameter should not be static you can make it also as the function.

In case of usage postData which includes functions you code could be reduced to $('#tblData1').setGridParam({datatype: Settings.ajaxDataType}).trigger('reloadGrid').

More about the usage of functions inside of postData you can read here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文