After I have done using an ajax POST to update a particular user in a table, I am trying to reload my table of users once a modal closes. I have utilised the jQuery load function to call my page again so that the page refreshes, but the page just looks like it is duplicating itself. I have supplied my code below. My Ajax POST function with success updating and re-loading page:
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/updateUser",
data: $("#updateForm").serialize(),
success: function(response) {
$("#alert").show();
$("#users_table").load("${pageContext.request.contextPath}/users #users_table");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
The table I am trying to reload on success of the AJAX:
<table id="users_table" class=" table table-hover table-bordered">
<tr>
<th>User Id #</th>
<th>Full Name</th>
<th>Username</th>
<th>Email</th>
<th>Date of Birth</th>
<th>User Authority</th>
<th>Update </th>
<th>Submitted Sightings</th>
<th>Delete</th>
</tr>
<c:forEach var="user" items="${users}">
<tr>
<td><c:out value="${user.id}" /></td>
<td><c:out value="${user.name}"/></td>
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.email}"/></td>
<td><c:out value="${user.dob}"/></td>
<td><c:out value="${user.authority}"/></td>
<td>
<button data-togle="modal" href="#updateModal" class="updateUser btn btn-primary" value="${user.id}">Update</button>
</td>
<td>
<button class="btn btn-success">Sightings</button>
</td>
<td>
<a class="delete" href="<c:url value="/deleteUser"><c:param name="id" value="${user.id}"/></c:url>"><button class="btn btn-danger">Delete</button></a>
</td>
</tr>
</c:forEach>
</table>
And my Controller which gets all the users from the database:
@Secured("ROLE_ADMIN")
@RequestMapping("/users")
public String getUsers(Model model) {
List<User> users = usersService.getUsers();
model.addAttribute("users", users);
return "users";
}
Any guidance will be appreciated. Thanks