<?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>
Je voudrais fermer la page après avoir soumis le formulaire. Après avoir exécuté le code ci-dessus, la page est fermée après avoir cliqué sur le bouton d'envoi, mais le SQL ne s'exécute pas.
Quelqu'un peut-il m'aider? Merci d'avance!
<?php
/* ... SQL EXECUTION TO UPDATE DB ... */
echo "<script>window.close();</script>";
?>
et supprimer la window.close()
du formulaire onsubmit
événement
Supprimez onsubmit
de la balise form
. Change ça:
<input type="submit" value="submit" />
À:
<input type="submit" value="submit" name='btnSub' />
Et écris ceci:
if(isset($_POST['btnSub']))
echo "<script>window.close();</script>";
Si vous avez à utiliser la même page que l'action, vous ne pouvez pas utiliser onSubmit="window.close();"
car cela ferme la fenêtre avant la réception de la réponse. Vous devez générer en Dinamycally un fragment JS qui ferme la fenêtre après le traitement des données SQL. Il serait cependant beaucoup plus élégant d’utiliser une autre page comme action de formulaire.
essayez onsubmit="submit(); window.close()"
Window.close () ne fonctionne plus comme avant. Peut être vu ici:
window.close et self.close ne ferment pas la fenêtre dans Chrome
Dans mon cas, j'ai réalisé que je n'avais pas besoin de fermer la page. Vous pouvez donc rediriger l'utilisateur vers une autre page avec:
window.location.replace("https://stackoverflow.com/");
En effet, l'événement onsubmit
est déclenché avant l'envoi du formulaire.
Supprimez votre onSubmit
et insérez ce code JavaScript dans votre script PHP après avoir traité la demande. Vous fermez la fenêtre maintenant et annulez la demande à votre serveur.
Cela a fonctionné avec brio pour moi:
$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>';
}