0

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>

ここでやろうとしているのは、テーブル フォーム (編集可能) から非表示の入力を取得し、それをコントローラーに送り返すことです。それは実行可能であり、私のコントローラーはそれを取得します。ただし、最初の行の値のみを受け取ります。他の行をクリックしても、最初の行の値を受け取ります。この問題を解決するにはどうすればよいですか?みんなありがとう。

4

4 に答える 4

1

@Barmerの回答に追加するg:eachを変更してインデックスを含める

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

パラメータ名のインデックス部分を作成します

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

paramsからリストとして値を設定できるはずです

    params.editusers
于 2013-02-04T11:46:36.993 に答える
1

私はgrailsを知らないので、推測しています:

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

テーブル内の他の ID も一意にする必要があります。おそらく、そもそも<tr>and要素にID は必要ありません。<span>

于 2013-02-04T05:15:02.380 に答える
0

成功関数で html の代わりに追加を使用する

$("#edit1").append(html).dialog("open")
于 2013-02-04T04:24:05.680 に答える
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 に答える