我收到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在数据库中更改成功而不刷新页面后显示它? 请帮我解释语法或示例。
答案 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);