web-dev-qa-db-fra.com

Comment puis-je actualiser une page de formulaire après son envoi à _blank?

J'ai un formulaire HTML qui cible _blank. Je voudrais que la page de ce formulaire soit rechargée après la soumission.

Alors, voici un exemple de balisage:

<form method="POST" action="result.php" target="_blank">
    <label for="name">Name:</label>
    <input type="text" name="name" />

    <label for="email">Email:</label>
    <input type="email" name="email" />

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

Ainsi, lorsque vous soumettez ce formulaire, il va passer de POST à result.php dans une nouvelle fenêtre ou un nouvel onglet. Cela laisse la page de formulaire telle quelle. Je veux que la page de formulaire soit rechargée ou au moins réinitialise tous les champs.

J'ai essayé <form onsubmit="location.reload()"... ainsi que onsubmit="window.location.reload()" mais rien n'a changé.

Aucune suggestion?

(s'il vous plaît pas jquery)

11
Hal Carleton

Vous ne savez pas pourquoi window.location.reload() ne fonctionne pas. Je pense que ça devrait. Cependant, cela semble fonctionner:

onsubmit="setTimeout(function () { window.location.reload(); }, 10)"
20
Explosion Pills

Il y a deux façons de faire cela, une dont vous ne voulez peut-être pas entendre parler.

PREMIER:

Dans la balise init du formulaire, si vous définissez action="", le formulaire sera envoyé sur la même page (sur lui-même).

<form action="" method="post">

Cela vous permet d'ajouter du code côté serveur en haut de la page, comme ceci (en utilisant PHP, par exemple):

<?php
    If (empty($_POST)===false) {
        //server side scripting to handle the submitted form
    }else{
?>
    //HTML to create/show the page with form for user input
<?php
    //Close the if statement
    }
?>

SECONDE:

Utilisez AJAX (javascript ou jQuery) pour "soumettre" le formulaire, puis - dans le rappel de la fonction AJAX - poursuivez les modifications que vous souhaitez apporter à la page, y compris la redirection vers un nouvelle page.

1
gibberish