2011-10-18 34 views
2

我是Grails的新手,我對Ajax有一些麻煩(所以我可能錯過了一些東西)。在我的主要gsp上我想要一個選擇框,當我點擊它的選項時,會在同一頁面上出現另一個字段來選擇其他的東西。由於第二部分的內容是動態的,我需要somme Ajax。無論如何,我還沒有成功。這裏是我的代碼:Grails RemoteForm,Ajax不起作用

main.gsp

<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <meta name="layout" content="main" /> 
    <title>Sample title</title> 
    <g:javascript library="jquery"/> 
    </head> 
    <body> 
    <h1>Selection de l'email</h1> 
    <div class="dialog"> 
     <g:select name="selectTemplate" 
        from="${templateCategories}" 
        value="category" 
        noSelection="['':'--- choisissez un modèle ---']" 
        onchange="${remoteFunction(
         controller:"email" 
         action:"printTestTemplate" 
         update:"listTemplates" 
         params:'\'category=\'+this.value' 
        )}" 
        /> 
      <div id="listTemplates">RRR</div> 
     </div> 
    </body> 
</html> 

EmailController

def printTestTemplate = { 
    println params.category //doesn't print anything 
    println "YEAAAAAAAAAH" //the same 
    render(view:"formSelectTemplate", model:[templates:EmailTemplate.findByCategory(params.templateCategory)]) 
} 

formSelectTemplate.gsp

<h1>YOUHOUUU !</h1> 

我都試圖調用視圖或模板(通過重新命名gsp當然),但沒有任何工作。不過,我不明白,我遵循官方文件。請注意,HTML結果不會在選擇框中創建事件,並且Firebug告訴我沒有404。因此,我一定在創建框時漏掉了一些東西。

選擇結果HTML:

<select id="selectTemplate" name="selectTemplate"> 
    <option value="Refus">Refus</option> 
    <option value="Informations complémentaires">Informations complémentaires</option> 
</select> 

回答

1

你忘了你remoteFunction調用的參數之間昏迷?像這樣:

onchange="${remoteFunction(controller:"email", 
          action:"printTestTemplate", 
          update:"listTemplates", 
          params:'\'category=\'+this.value')}" 
+0

我認爲雙引號應該在這個地方工作(或者可能是[這個bug](http://jira.grails.org/browse/GRAILS-1973?page=com.atlassian。 jira.plugin.system.issuetabpanels%3Aall-tabpanel)如果你使用grails <= 1.3.5)。 – Antoine