我遇到了一些关于JQUERY和AJAX的问题。我先发布我的代码,
AJAX:
$('#edittable').live('click', function() {
$.ajax({
url: URL,
data: $(this).serialize(),
type: "POST",
success: function(html){
$("#edit1").html(html).dialog("open")
});
},
}
});
return false;
});
});
HTML:
<form id="edittable">
<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%>
<span id="user">
${it.username}
</span>
<input type="hidden" name="editusers" id="editusers"
value="${it.username}" readonly>
</td>
</tr>
</g:each>
</table>
</div>
</form>
我在这里要做的是,从表格(edittable)中检索隐藏的输入并将其发送回我的控制器。这是可行的,我的控制器检索它。但是,它只接收第一行值,即使我单击其他行,它仍然会收到第一行值。任何人都知道我该怎么做才能解决这个问题?谢谢你们。
答案 0 :(得分:1)
我不知道grails,所以我只是在猜测:
<input type="hidden" name="editusers${it.ID}" value="{it.username}" readonly>`
您还需要使表中的其他ID唯一。可能您首先不需要<tr>
和<span>
元素中的ID。
答案 1 :(得分:1)
添加到@Barmer的答案 更改g:每个包含索引
<g:each status="i" in="${result}">
使索引成为参数名称的一部分
<input type="hidden" name="editusers[${i}]" value="${it.username}" readonly>
您应该能够将值列为params
中的列表 params.editusers
答案 2 :(得分:0)
Use this to form data post
<script type="text/javascript">
var form_data = $('#edittable').serializeArray();
$.ajax({
url: URL,
data: {post:form_data},
type: "POST",
success: function(html){
$("#edit1").html(html).dialog("open")
});
}
</script>
答案 3 :(得分:0)
在成功函数中使用append而不是html
$("#edit1").append(html).dialog("open")