我正在尝试从表格单元格中获取特定值,并将其传递给控制器。但它似乎没有奏效。我告诉你一些我的代码:
这是在控制器中:
def searchUser = {
String abc = request.getParameter("harrow")
println(abc)
}
这是在html页面中:
<form>
<div style="height: 250px; overflow: scroll; width: 100%;">
<table id="normal">
<g:each in = "${result}">
<tr id="btn">
<td width=10% >${it.ID}</td>
<td width=25% id="harrow">${it.username}</td>
</tr>
</g:each>
</table>
</div>
<input type ="submit" name ="abc" id="opener">
</form>
修改
AJAX:
$("#edittable").on('click', function() {
$.ajax({
url: URL,
data: $(this).serialize(),
type: "POST",
success: function(html){
//do something with the `html` returned from the server here
$("#edit1").html(html).dialog("open")
},
error: function(jqXHR, textStatus, errorThrown){
alert('error: ' + textStatus + ': ' + errorThrown);
}
});
return false;//suppress natural form selection
});
我可以将值传递给控制器,但是现在它只检索第一行值而不是另一行。我的AJAX代码有问题吗?非常感谢你们。
答案 0 :(得分:0)
因此,为了显示该行的详细信息,其中一种方法可以是:
控制器方法
def rows = [
[id:1, name:'name1'],
[id:2, name:'name2'],
[id:3, name:'name3']
]
def show(){
[results:rows]
}
def showLine(Long id){
render rows.find {it.id == id }
}
查看强>
<html>
<head>
<g:javascript library="jquery" />
<r:layoutResources />
</head>
<body>
<table>
<thead>
<tr>
<th>Action</th>
<th>Id</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<g:each in="${results}" status="i" var="r">
<tr>
<td><g:remoteLink value="Details" id="${r.id}" action="showLine" update="lineDetails">Details</g:remoteLink></td>
<td>${r.id}</td>
<td>${r.name}</td>
</tr>
</g:each>
</tbody>
</table>
<div id="lineDetails">
</div>
</body>
</html>
基本上,您使用AJAX调用showLine方法并传递行对象ID。然后搜索对象并将其渲染回来。渲染数据放在表格下的div中。如果您使用表格中的onclick,按钮或链接,则取决于您。您还可以自己决定如何在结果页面上显示详细信息 - 使用jquery对话框或其他内容。希望它有所帮助