在Index-gsp中,我希望能够选择任意数量的行,然后通过单击链接将所有这些行发送到 Controller 进行处理,例如创建不同种类的新对象。
我不知道如何进行选择或如何在GSP中收集这些选定的行。如果可能的话,也许我应该在每行上使用一个复选框?
这是使用修改后的index.gsp显示的产品列表。
每个产品线前面都有一个复选框。
我想要的是列出要检查的产品,然后将此列表发送到 Controller 。
此index.gsp的一部分:
<li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
<li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
<li><g:link class="create" action="createOffer"><g:message code="default.new.label" args="[entityName]" params="toOffer" /></g:link></li>
</ul>
</div>
<div id="list-prodBuffer" class="content scaffold-list" role="main">
<h1><g:message code="default.list.label" args="[entityName]" /></h1>
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<table>
<thead>
<tr>
<td> Välj</td>
<td> ID</td>
</tr>
</thead>
<tbody>
<g:each in="${prodBufferList}" status="i" var="prodBuffer">
<tr class="${ (i % 2) == 0 ? 'even': 'odd'}">
<td><g:checkBox name="toOffer" value="${prodBuffer.id}" checked="false" /></td>
<td>${prodBuffer.id}</td>
因此,这不是普通形式,仅是我想使用链接将其传输到 Controller 的列表。
我是一个初学者,不知道该怎么做。
最佳答案
您可以使用javascript从页面收集所有必要的数据,然后将所有数据发送到 Controller 进行处理。
有很多方法可以做到这一点。
例如通过JQuery发送:
<script>
//some code
var items = [1,2,3];
//some code
$('#add-location').click(function () {
$.ajax({
type: "POST",
url: "${g.createLink(controller:'myController', action: 'myControllerMethod')}",
data: {items: items},
success: function (data) {
console.log(data)
}
});
});
</script>
关于loops - Grails GSP循环遍历索引,并对选定的行进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42533148/