Grails在控制器中运行jquery

时间:2013-04-08 14:57:11

标签: jquery grails controller

简单问题,但我在网上找不到任何建议如何做...我希望控制器在运行更新操作之前在屏幕上的简单html表上运行jQuery检查,但我无法理解我怎么做,有什么想法吗?

我尝试在jQuery中运行检查,然后使用jquery帖子将我需要的值传递给更新操作,但这根本不起作用,当我检查了params它看起来不像是当我只运行常规更新时......

问题是我有多对多关系集,目前,在添加到我的列表或更新列表中的值时更新正常,但是我需要删除一个我遇到困难的那一刻,我想要什么要做的是获取html表的计数(其中包含我的链接项列表),然后将其与数据库进行比较,如果现在表中的数量少于数据库中我将​​从sql运行基本删除清除现在冗余的链接项......

我唯一无法解决的问题是如何在控制器运行期间获取此表计数,或者调用控制器并传入此表号(我可以调用该操作并传递表号和id但是这似乎失去了所有其他参数),我原以为def formInstance = Form.get(id)会让我得到所有的参数,但似乎根本没有这样做:(

如果我有手持身份证,还有另一种方法可以重新填写我的参数吗?

任何帮助非常感谢! :)

Update控制器如下所示: -

def update(Long id) {
        def formInstance = Form.get(id)
        int eventCount = formInstance.events.collect().count{id};

        if (!formInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'form.label', default: 'Form'), id])
            redirect(action: "list")
            return
        }

        formInstance.properties = params

        if (!formInstance.save(flush: true)) {
            render(view: "edit", model: [formInstance: formInstance])
            return
        }

        int neweventCount = formInstance.events.collect().count{id};
        println(neweventCount)  


        flash.message = message(code: 'default.updated.message', args: [message(code: 'form.label', default: 'Form'), formInstance.id])
        redirect(action: "show", id: formInstance.id)

    }

通过常规保存按钮提供的参数如下所示: -     [id:3,formDesc:form 3,events [1] .id:2,events [1]:[id:2],_ action_update:Update,events [0] .id:2,events [0]:[id :2],版本:,动作:索引,控制器:表格]

但是通过像这样的jQuery     [id:14,myInt:1,action:update,controller:form]

总结我认为问题在于保存,但我无法弄清楚如何纠正它。例如,如果我从一个带有3个“事件”的“表单”开始,然后从表中删除其中一个事件,那么保存params看起来像这样: -

[id:1, formDesc:form 112, events[1].id:1, events[1]:[id:1], _action_update:Update, events[0].id:1, events[0]:[id:1], version:, action:index, controller:form]

正如您所看到的,现在只显示两个事件(0和1),并且它们会根据需要进行更新,但第三个事件(不再显示在params中)不会从链接中删除我想要的桌子。

我能想到的唯一方法是从屏幕上获取表格大小,然后将其与现在保存的事件数量进行比较,并在保存之前或之后进行手动SQL删除,但我无法解决怎么做......

1 个答案:

答案 0 :(得分:0)

我当时是个白痴,params已经给我一个列表,列出了我现在有多少时事,由于某些原因它没有点击我可以从那个列表中得到新的参数数量然后我可以运行一个简单的sql来删除所有现在不需要的事件! 拍打前额