<?php
/* ... SQL EXECUTION TO UPDATE DB ... */
?>
<form method = "post"
action = "<?=$_SERVER['php_self']?>"
onSubmit= "window.close();">
...
<input type="submit" value="submit" />
<input type="reset" value="reset" />
</form>
我想在提交表单后关闭页面。运行上面的代码后,单击“提交”按钮后页面将关闭,但SQL不会执行。
任何人都可以帮助我吗?提前谢谢!
答案 0 :(得分:47)
<?php
/* ... SQL EXECUTION TO UPDATE DB ... */
echo "<script>window.close();</script>";
?>
并从表单window.close()
事件
onsubmit
答案 1 :(得分:9)
从onsubmit
标记中删除form
。改变这个:
<input type="submit" value="submit" />
要:
<input type="submit" value="submit" name='btnSub' />
写下这个:
if(isset($_POST['btnSub']))
echo "<script>window.close();</script>";
答案 2 :(得分:1)
如果 使用与操作相同的页面,则无法使用onSubmit="window.close();"
,因为它会在收到响应之前关闭窗口。您必须以dinamycally方式输出一个JS片段,在处理SQL数据后关闭窗口。然而,使用另一个页面作为表单操作会更加优雅。
答案 3 :(得分:1)
尝试onsubmit="submit(); window.close()"
答案 4 :(得分:1)
Window.close()不像以前那样工作。可以在这里看到:
window.close and self.close do not close the window in Chrome
就我而言,我意识到我不需要关闭页面。因此,您可以将用户重定向到另一个页面:
window.location.replace("https://stackoverflow.com/");
答案 5 :(得分:0)
这是因为在提交表单之前触发了事件onsubmit
。
删除onSubmit
并在处理完请求后在PHP脚本中输出该JavaScript。您正在关闭窗口,并取消对服务器的请求。
答案 6 :(得分:0)
这对我来说非常出色:
$query = "INSERT INTO `table` (...or put your preferred sql stuff)"
$result = mysqli_query($connect, $query);
if($result){
// If everything runs fine with your sql query you will see a message and then the window
//closes
echo '<script language="javascript">';
echo 'alert("Successful!")';
echo '</script>';
echo "<script>window.close();</script>";
}
else {
echo '<script language="javascript">';
echo 'alert("Problem with database or something!")';
echo '</script>';
}
答案 7 :(得分:-2)
您可以尝试this methods
window.open(location, '_self').close();