如何将json数据添加到服务器并在单击按钮后立即将其显示在jqgrid中
我有一个正在运行的程序,它将把我的数据从服务器显示到 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
函数
Add
设置本地变量datas
,该变量仅存在于Add
函数内部。也许您想要的是从函数返回值并将其设置为setGridParam
调用的使用范围中存在的变量。下一个问题是,在将其作为 URL 的一部分插入之前,您应该根据
encodeURIComponent
对JSON.stringify(datas)
进行编码。您还可以使用 jQuery.param 函数代替:如果您使用 HTTP GET (
mtype:'GET'
) 对于对服务器的请求,我建议您最好使用 jqGrid 的postData
参数,其中包含函数: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 variabledatas
which exist only inside of theAdd
function. Probably what you want is to return the value from the function and set to the variable existing in the scope of usage thesetGridParam
call.The next problem is that you should encode
JSON.stringify(datas)
with respect ofencodeURIComponent
before inserting it as the part of URL. You can also use jQuery.param function instead:If you use HTTP GET (
mtype:'GET'
) for requests to the server I would recommend you better to usepostData
parameter of jqGrid which contain functions:The properties of
postData
parameter will be added to the URL ('?' and '&' will be inserted if needed) in case of the usage ofmtype:'GET'
or to the body of the posted data in case ofmtype:'POST'
.The advantage of the usage functions inside of
postData
is that the corresponding values (like the value ofjson
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 thepostData
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.