很简单的问题,但我在网上找不到任何建议如何做...我希望控制器在运行更新操作之前对屏幕上的简单 html 表运行 jQuery 检查,但我无法理解我是如何做到的做吧,有什么想法吗?
我尝试在 jQuery 中运行检查,然后使用 jquery 帖子将我需要的值传递给更新操作,但这根本不起作用,当我检查参数时,它看起来不像我运行时那样只是定期更新...
问题是我有一个多对多关系集,目前,在添加到我的列表或更新列表中的值时更新得很好,但是当我需要删除一个我遇到困难的那一刻,我想做的是获取 html 表的计数(其中包含我的链接项目列表),然后将其与数据库进行比较,如果现在表中的数量少于数据库中的数量,我将从 sql 运行基本删除以清除现在多余的链接项目...
我唯一无法解决的是如何在控制器运行期间获取此表计数,或调用控制器并传入此表号(我可以调用操作并传递表号和 id 但这似乎失去所有其他参数),我原以为这def formInstance = Form.get(id)
会让我得到所有的参数,但似乎根本没有这样做:(
或者,如果我手头有身份证,还有其他方法可以重新填写我的参数吗?
非常感谢任何帮助!:)
更新控制器看起来像这样: -
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], version:, action:index, controller:form]
但是通过像这样的 jQuery [id:14, myInt:1, action:update, controller:form]
回顾一下,我认为问题出在保存上,但我不知道如何纠正它。例如,如果我从一个带有 3 个“事件”的“表单”开始,然后从表中删除其中一个事件,然后将其保存,则参数如下所示:-
[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),并且它们会根据我的需要进行更新,但是第三个事件(不再显示在参数中)并没有像我一样从链接表中删除想。
我能想到的唯一方法是从屏幕上获取表大小,然后将其与现在保存的事件数进行比较,并在保存之前或之后进行手动 SQL 删除,但我不知道该怎么做这...