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

2hh7jdfx  于 2022-12-21  发布在  Java
关注(0)|答案(8)|浏览(188)
<?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不执行。
有人能帮帮我吗?

g2ieeal7

g2ieeal71#

<?php    
    /* ... SQL EXECUTION TO UPDATE DB ... */

    echo "<script>window.close();</script>";
?>

并从表单onsubmit事件中删除window.close()

j8ag8udp

j8ag8udp2#

form标签中删除onsubmit

<input type="submit" value="submit" />

收件人:

<input type="submit" value="submit" name='btnSub' />

写上这个:

if(isset($_POST['btnSub']))
    echo "<script>window.close();</script>";
bz4sfanl

bz4sfanl3#

Window.close()不像以前那样工作了。可以在这里看到:
window.close and self.close do not close the window in Chrome
在我的例子中,我意识到我不需要关闭页面,所以你可以使用以下命令将用户重定向到另一个页面:

window.location.replace("https://stackoverflow.com/");
iqjalb3h

iqjalb3h4#

如果你必须使用同一个页面作为动作,你就不能使用onSubmit="window.close();",因为它会在收到响应之前关闭窗口。你必须动态输出一个JS片段,在SQL数据处理之后关闭窗口。然而,使用另一个页面作为表单动作会更优雅。

uz75evzq

uz75evzq5#

尝试onsubmit="submit(); window.close()"

6fe3ivhb

6fe3ivhb6#

这对我来说非常有效:

$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>';           
        }
9vw9lbht

9vw9lbht7#

这是因为事件onsubmit在表单提交之前触发。
删除onSubmit,并在处理完请求后将该JavaScript输出到PHP脚本中。您现在正在关闭窗口,并取消对服务器的请求。

u5i3ibmn

u5i3ibmn8#

您可以尝试this methods

window.open(location, '_self').close();

相关问题