Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从jQueryAjax传递到grails控制器_Jquery_Grails_Jqgrid - Fatal编程技术网

将数据从jQueryAjax传递到grails控制器

将数据从jQueryAjax传递到grails控制器,jquery,grails,jqgrid,Jquery,Grails,Jqgrid,我目前有一个jqgrid,其中包含这段代码,直到我将数据传递到ajax post为止 $("#getSelected").click(function(){ var ids = grid.jqGrid('getGridParam','selarrrow'); if (ids.length>0) { var names = []; for (var

我目前有一个jqgrid,其中包含这段代码,直到我将数据传递到ajax post为止

$("#getSelected").click(function(){
                var ids = grid.jqGrid('getGridParam','selarrrow');
                if (ids.length>0) {
                    var names = [];
                    for (var i=0, il=ids.length; i < il; i++) {
                        var name = grid.jqGrid('getCell', ids[i], 'Name');
                        names.push(name);
                    }
                    //alert ("Names: " + names.join(", ") + "; ids: " + ids.join(", "));                
                    $("#names").html(names.join(", "));
                    $("#dialog-confirm").dialog({
                        height:280,
                        modal:true,
                        buttons:{
                            'Cancel': function(){
                                $(this).dialog('close');
                            },
                            'Confirm': function(){
                    //            alert("Confirm");
                                //alert ("Names: " + names.join(", ") + "; ids: " + ids.join(", "));
                                $.ajax({
                                 type: "POST",
                                 url:  "/MyController/downloadFile/",
                                 data: { method: "downloadFile",
                                 orderNum: JSON.stringify(ids),
                                 names: JSON.stringify(names)
                                 },
                                 dataType: "json",
                                 success: function(msg){
                                 alert(msg);
                                 },
                                 error: function(res, status, exception) {
                                 alert(res);
                                 }
                                 });
                            }
                        }
                    });
                }
            });
$(“#getSelected”)。单击(函数(){
var id=grid.jqGrid('getGridParam','selarrrow');
如果(ID.长度>0){
变量名称=[];
对于(var i=0,il=ids.length;i
然后我想发布数据并在我的控制器方法中获取它。控制器方法是downloadFile,我只希望它将所有名称写入该文件。这是我当前的下载文件工作版本

def downloadFile =
{
    def date = new Date()
    SimpleDateFormat sdf = new SimpleDateFormat("MMddyyyy")
    File file = File.createTempFile("MyData",".txt")
    file.write("hello world!")
    String MyTitle = "ChangeMe" + sdf.format(date).toString()
    response.setHeader "Content-disposition", "attachment; filename=${MyTitle}"
    response.contentType = 'text-plain'
    response.outputStream << file.text
    response.outputStream.flush()
}
def下载文件=
{
定义日期=新日期()
SimpleDataFormat sdf=新的SimpleDataFormat(“MMddyyyy”)
File File=File.createTempFile(“MyData”,“.txt”)
file.write(“你好,世界!”)
字符串MyTitle=“ChangeMe”+sdf.format(date).toString()
response.setHeader“内容处置”,“附件;文件名=${MyTitle}”
response.contentType='text plain'

response.outputStream是否要通过ajax打开下载对话框?出于安全考虑,JavaScript在设计上无法在用户计算机上执行较低级别的任务。启动文件下载提示是这些限制之一。我认为您需要使用隐藏的iframe或JQuery插件,如。很棒的链接似乎无法自定义您下载的文件。这只是一个插件示例。您可以查找其他插件或查找隐藏的iframe解决方案。