如何在ajax调用后设置新名称?

时间:2015-06-01 14:11:00

标签: jquery ajax servlets

我收到servlet的提要列表,如下所示:

<c:forEach items="${feedList}" var="feed">
    <tr>
        <td><input readonly="readonly" id="feedId"
            value="<c:out value="${feed.id}" />" /></td>
        <td><c:out value="${feed.name}" /></td>
        <td><a
            href="FeedController?action=delete&id=<c:out value="${feed.id}"/>">Delete</a>
        </td>
        <td><a
            href="FeedItemController?action=feedItemListAsc&id=<c:out value="${feed.id}"/>">View</a></td>
        <td><button onclick="openEditDialog(${feed.id})" name="modal">Edit</button>
        </td>
    </tr>
</c:forEach>

编辑使用servlet重命名名称的开放模式窗口:

$('#renameFeed').click(
        function() {
            var name = $('#feedName').val();
            var id = $('#feedId').val();
            var action = 'edit';

            var data = "feedName=" + name + "&id=" + id
                    + "&action=" + action;

            $.ajax({
                type : "Get",
                url : "FeedController",
                data : data,
            });
             $('#mask, .window').hide();
        });

在使用servlet在数据库中更新当前记录的新名称之后,我想要的是在页面上更新它。在刷新页面之前,名称保持不变,如何在servlet在数据库中更改成功而不刷新页面后显示它? 请帮我解释语法或示例。

1 个答案:

答案 0 :(得分:0)

你想这样做:

$.ajax({
    type : "Get",
    url : "FeedController",
    data : data,
  })
  .done(function() {
    // success (Here set new name)
  })
  .fail(function() {
    // error
  })
  .always(function() {
    // complete
  });

了解详情:http://api.jquery.com/jquery.ajax/

修改

您可能希望将id属性添加到:

<td><c:out value="${feed.name}" /></td>

像:

<td id="feed-name"><c:out value="${feed.name}" /></td>

然后:

$('#renameFeed').click(
    function() {
        var name = $('#feedName').val();
        var id = $('#feedId').val();
        var action = 'edit';

        var data = "feedName=" + name + "&id=" + id
                + "&action=" + action;

        $.ajax({
            type : "Get",
            url : "FeedController",
            data : data,
        }).done(function() {
            $('#feed-name').text(name);
        });

        $('#mask, .window').hide();
    });

<强> EDIT2:

循环:

<td id="feed-name${feed.id}"><c:out value="${feed.name}" /></td>

<td id="feed-name<c:out value="${feed.id}" />"><c:out value="${feed.name}" /></td>

(我不知道sintaxis)

JS:

$('#feed-name' + id).text(name);