我是ajax的新手所以也许这很明显。我尝试过很多不同的工作方法。当你点击一个按钮时我有javascript:
这是javascript / ajax:
<script type="text/javascript">
$("#show").click(function () {
$.ajax({ url: '/Myproject/result/index',
type: "POST",
data: { id: id},
success: function(result) {
alert("Success:" + result); // Can see getting object back.
}});
$(".resulttable").show();
});
以下是grails视图模板中的关键行:
<g:each in="${allResults}" status="i" var="result">
感谢。
答案 0 :(得分:1)
你不需要用艰难的方式编写你的ajax调用。您可以在html中使用一些Grails实习生标签:
点击链接后,您会找到一些不错的例子......
答案 1 :(得分:1)
你只是不能让你的javascript / jquery代码填充gsp中的东西,因为gsp在服务器端处理并且javascript在客户端处理,在gsp呈现所有html文档并用你的模型填充它们之后。您需要知道您的页面已经处理过,因此$ {variables}之类的内容将不再重新加载。所以当你这样做时:
$(".resulttable").show();
它不会显示你正在等待的结果。您必须使用JavaScript代码重新加载结果表。
因此,如果您在此处使用ajax,则应使用函数success
通过javascript / jquery更改html表,因为您已经拥有了所需的响应。也许this阅读可以帮到你。哦,我认为如果在你的ajax调用中,你会定义一个dataType(json在你的情况下工作得很好)会更好,就像这样:
$("#show").click(function () {
$.ajax({ url: '/Myproject/result/index',
type: "POST",
data: { id: id},
dataType: 'json',
success: function(result) {
alert("Success:" + result); // Can see getting object back.
}});
$(".resulttable").show();
});
只是要明确你从控制器那里得到了什么样的回应。