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