提交表格后如何关闭浏览器选项卡?

时间:2011-12-02 11:02:00

标签: php javascript

<?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不会执行。

任何人都可以帮助我吗?提前谢谢!

8 个答案:

答案 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();