2013-04-08 91 views
0

够简单的问题,但我找不到任何在线建议怎么办呢......我想在控制器上运行屏幕上的一个简单的HTML表一个jQuery检查运行更新之前行动,但我无法理解我该怎么做,有什么想法?Grails的控制器内运行的jQuery

我试着在jQuery中运行检查,然后将我需要的值传递给使用jquery post的更新操作,但那根本不起作用,当我检查参数时它看起来不像它当我运行只是一个定期更新...

问题是我有一个多对多的关系设置,目前,更新罚款时添加到我的清单,或更新列表中的值,但一分钟我需要删除一个我遇到困难,我想要做的是获得的HTML表(包含我的链接项目列表)的计数,然后将其与数据库进行比较,如果表中少于现在比在数据库我打算从sql运行一个基本的删除来清除现在多余的链接项...

我不能工作了唯一的一点是如何控制运行中得到这个表计数,或致电控制器与此表中数通(好,我可以调用动作和行程n表号和ID但这似乎失去了所有其他参数),我曾认为def formInstance = Form.get(id)会得到我所有的参数,但这似乎并没有做到这一点:(

或者是有另一种方法来重新填写我的参数如果我有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) 

    } 

经由常规提供的PARAMS保存按钮看起来像这样: - [ID:3,formDesc:形式3,事件[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,敏:1,动作:更新,控制器:形式]

总括来说,我认为第问题在于保存,但我无法解决如何纠正它。例如,如果我开始与“形” 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删除,但无法工作出了如何做到这一点...

+0

我能想到的最简单的方法是删除所有关系并只插入用户标记的值。 如果您不想这样做,则需要检查数据库中存在的实例,并将它们与用户标记的值进行比较。如果您选择第二种选择,请张贴您的观点,看看这些值是如何来到“参数”的。 – 2013-04-08 15:55:58

+0

我想从数据库中删除所有的值,希望save函数能够将它们重新添加回去,但是当我尝试失败时发生错误,读取'批量更新返回来自update [0]的意外行数;实际行数:0;预计:1' – MorkPork 2013-04-08 16:14:05

+0

好的,所以发布你的控制器和查看代码,这将有助于理解你的问题。 – 2013-04-08 23:42:50

回答

0

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