Grails RemoteForm, Ajax не работает - PullRequest
2 голосов
/ 18 октября 2011

Я новичок в Grails и у меня проблемы с Ajax (так что я мог что-то пропустить). На моем главном gsp я хочу поле выбора, которое, когда я нажимаю на его опции, заставляет появиться другое поле на той же странице, чтобы выбрать другие вещи. Поскольку содержание во второй части является динамичным, мне нужна Somme 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 Ответ

1 голос
/ 18 октября 2011

Вы забыли запятую между аргументами вашего remoteFunction вызова?как это:

onchange="${remoteFunction(controller:"email",
                           action:"printTestTemplate",
                           update:"listTemplates",
                           params:'\'category=\'+this.value' )}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...