【发布时间】:2015-07-29 12:19:05
【问题描述】:
我的父窗口中有一个 div,我想在其中显示我已添加到数据库中的新输入记录。
这是在父窗口内:
<div id="divTable"></div>
这个按钮在子窗口里面:
<input type="button" name="submit" value="Submit" onclick="updateTable();"/>
这是在我的外部 javascript 文件中:
function updateTable()
{
if(insertThis()==true)
{
alert("Your details have been entered! Please click on 'View' to display all records.");
}
//What should I put here?
}//updateTable(w, h)
在同一个 javascript 文件中,我有另一个函数,它只使用 ajax 显示表格(在另一个按钮的父窗口中):
function displayTable()
{
var page = "database.php"
var parameters = 'action=update';
var xmlhttp = new XMLHttpRequest();
if(xmlhttp==null)
{
alert("Your browser does not support AJAX!");
return false;
}
xmlhttp.onreadystatechange=function()
{
document.getElementById("divTable").innerHTML=xmlhttp.responseText;
};
xmlhttp.open("GET", page+"?"+parameters, true);
xmlhttp.send(null);
}//displayTable()
我有另一个 PHP 文件,但它只是处理向数据库中插入查询。
在子窗口中,我有文本字段和单选按钮等要相应地输入到数据库中。
那么我应该在updateTable() 函数中添加什么?我应该把displayTable() 函数放在那里还是?我试过widnows.opener,但它似乎不起作用。我已经在网上搜索了其他示例,但它们没有处理外部 javascript 文件,所以我有点困惑(或者它与我也不太确定无关)。
我想要的结果是,在用户输入所需的任何内容并单击Submit 按钮后,我希望表格立即显示在父窗口中。目前我正在使用父窗口中的另一个按钮来显示表格。我想这样做是因为如果用户先查看表格然后输入新数据,则在用户退出后,用户必须单击一个按钮才能再次查看表格。 (表格显示在div)有什么解决办法吗?
注意:在我的displayTable() 函数中,我有document.getElementById("divTable").innerHTML=xmlhttp.responseText;,所以我不确定是否应该重用这个函数。
附:我更喜欢原始的 javascript 解决方案,因为我是新手并且还在学习,所以我还没有接触过 jQuery 上的任何东西。
【问题讨论】:
-
你是怎么打开子窗口的?如果使用 window.open,那么它是
window.opener.document.getElementById("divTable").innerHTML=whatever- PS 永远不要在表单中使用 name="submit"。它会破坏提交事件 -
我使用window.open打开窗口。那么关于这个
window.opener.document.getElementById("divTable").innerHTML=whatever,如果我想让这个whatever成为displayTable(),这可能吗?而且我没有使用表格。 -
是的,这是可能的。
window.opener.displayTable()会执行函数
标签: javascript ajax