Как закрыть вкладку браузера после отправки формы?

<?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 не выполняется.

Может кто-нибудь мне помочь? Заранее спасибо!

 <?php /* ... SQL EXECUTION TO UPDATE DB ... */ echo "<script>window.close();</script>"; ?> 

и Удалите window.close() из формы onsubmit event

Удалите onsubmit из тега form . Измените это:

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

Для того, чтобы:

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

И напишите:

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

Если вам нужно использовать ту же страницу, что и действие, вы не можете использовать onSubmit="window.close();" так как он закроет окно до получения ответа. Вы должны динамически выводить фрагмент JS, который закрывает окно после обработки данных SQL. Однако было бы гораздо более элегантно использовать другую страницу в качестве действия формы.

try onsubmit="submit(); window.close()"

Это связано с тем, что событие onsubmit запускается до onsubmit формы.

Удалите свой onSubmit и выведите этот JavaScript в свой PHP-скрипт после обработки запроса. Вы закрываете окно прямо сейчас и отменяете запрос на свой сервер.

Window.close () не работает так, как раньше. Здесь можно увидеть:

window.close и self.close не закрывают окно в Chrome.

В моем случае я понял, что мне не нужно закрывать страницу. Таким образом, вы можете перенаправить пользователя на другую страницу с помощью:

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

Для меня это блестяще работало:

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