我有一页list.jsp
列出了表格中的所有记录,顶部有一个按钮来添加新记录。
我想打开add.jsp
作为弹出窗口。这有效但当我关闭弹出窗口时如何更新list.jsp
以便它显示新添加的记录
这是我尝试的代码......
的List.jsp
<html>
<head>
<script>
function popupwindow(url, title, w, h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
popupWindow = window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
return popupWindow
}
</script>
</head>
<body>
<input type="button" value="Add new" id="add-btn" onclick="popupwindow('Addnew.jsp','Add new',600,400)"/>
<table>
// Here i am showing all records from database...
</table>
</body>
add.jsp
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
$("#savebtn").click(function(e) {
$.ajax({
type: "POST",
url: "RecordHandler",
data: dataString,
success: function(data){
$('body').html(data);
$('#msg').html('New Record Added Successfully.')
}
});
});
</head>
<body>
<form method="POST">
<table>
<tr>
<td>Folder Number</td>
<td><input type="text" name="folderno"/></td>
</tr>
<tr>
<td>Box Number <b style="color:red">*</b></td>
<td><input type="text" name="boxno"/></td>
</tr>
<tr>
<td colspan=2>
<input type="submit" value="Save" name="save" id="savebtn"/>
</td>
</tr>
</table>
</form>
答案 0 :(得分:6)
您可以使用location.reload(true)
重新加载当前文档。 forceGet
参数默认为false
,这就是您将其作为true
传递以覆盖它的原因。基本上它用于从服务器获取文档,而不是从缓存中加载它。
EDIT1:如果您尝试重新加载弹出窗口的源窗口,如评论中提到的escaparello,则应调用window.opener.location.reload()
。此外,您可以在弹出窗口卸载时绑定事件侦听器,如下所示:
popupWindow.onunload = function () {
// This informs the user that the record has been added successfully
alert('The record has been inserted into the database!');
window.opener.location.reload();
}
答案 1 :(得分:5)
从我对其他答案的评论中,您只需要处理window.onunload
事件并使用window.opener
属性来告知刷新调用页面。
<强> 2.add.jsp 强>
<html>
<head>
<script type="text/javascript">
//ADDED START
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
//ADDED END
$(document).ready(function(){
$("#savebtn").click(function(e) {
$.ajax({
type: "POST",
url: "RecordHandler",
data: dataString,
success: function(data){
$('body').html(data);
$('#msg').html('New Record Added Successfully.');
window.timeout(CloseMe, 1000); <-- not sure on the syntax
but have a timeout which triggers an event
to close the form once a success has been handled.
Probably should do something incase of an error.
}
});
return false; <-- this should stop the window from unloading.
});
function CloseMe()
{
window.opener.location.reload();
window.close();
}
</head>