0

我遇到了一些关于 JQUERY 和 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)中检索隐藏的输入并将其发送回我的控制器。这是可行的,我的控制器检索它。但是,它只接收第一行值,即使我点击其他行,它仍然接收第一行值。任何人都知道我应该怎么做才能解决这个问题?多谢你们。

4

4 回答 4

1

添加到@Barmer 答案更改 g:each 以包含索引

    <g:each status="i" in="${result}">

使参数名称的索引部分

    <input type="hidden" name="editusers[${i}]" value="${it.username}" readonly>

您应该能够从参数中将值列为列表

    params.editusers
于 2013-02-04T11:46:36.993 回答
1

我不知道grails,所以我只是猜测:

<input type="hidden" name="editusers${it.ID}" value="{it.username}" readonly>`

您还需要使表中的其他 ID 唯一。可能您首先不需要<tr>and<span>元素中的 ID。

于 2013-02-04T05:15:02.380 回答
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>
于 2013-02-04T04:19:05.487 回答
0

在成功函数中使用 append 而不是 html

$("#edit1").append(html).dialog("open")
于 2013-02-04T04:24:05.680 回答