我是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>
答案 0 :(得分:1)
您是否忘记了remoteFunction
来电的论点之间的昏迷?像这样:
onchange="${remoteFunction(controller:"email",
action:"printTestTemplate",
update:"listTemplates",
params:'\'category=\'+this.value' )}"