2013-04-08 94 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來刪除所有不需要的事件! 拍打額頭