[RESOLU] Comment garder les valeurs d'un formulaire qui semble se réactualiser au clic d'un bouton ?

Eléphanteau du PHP | 10 Messages

12 mars 2015, 12:50

Bonjour à tous,

Excité de poster mon premier message :)
Je n'ai pas trouvé la réponse à mon souci sur le forum (et ce post post431882.html?hilit=formulaire%20actu ... A9#p431882 ne semble pas être résolu)

Mon cas :
J'ai un petit formulaire avec deux input de type text, un select/option dont le contenu vient d'une table Oracle, et un bouton input-submit qui déclenche l'ajout dans Oracle (INSERT) de ce qui a été saisi dans les deux input-text et sélectionné dans le select-option. Je décris mon problème (en rouge gras) plus bas après le code.

Code : Tout sélectionner

<div id='droite'> <form method='POST'> <div> <span style="text-decoration: underline;background-color: #f38630;color:#fff">Ajouter un rôle (groupe de sécurité) à un NNI existant :</span><br> <br> <label for="nni">NNI :</label> <input type="text" id="nni" name='NNI'/><br /> <label for="date_exp">Date d'expiration :</label> <input type="date" id="date_exp" name='date_exp' value="<?php echo date("Y").'-'.date("m").'-'.date("d")?>"><br /> <label for="role">Groupe Sécurité :</label> <select id="role" name='gp_sec'> <?php // Récupère une liste de rôles affiche_liste_role($connection) ?> </select><br> </div> <div align='center'> <br><input type="submit" value="Créer" name='creerRoleNNI'> </div> </form> </div> ... (plus loin) <?php // fermeture connexion oracle oci_close($connection); // Déclenche l'action d'ajout if (!empty($_POST['creerRoleNNI'])) include_once('./Modele/RoleNNI_InsertRole.php'); ?>
Dans le fichier RoleNNI_InsertRole.php donc l'include est déclenché à l'appui du bouton input-submit, il y a un contrôle qui vérifie, entre autres, si le contenu de l'input-text NNI (qui est l'ID User) existe dans la base.
Si ce n'est pas le cas, je fais une alert javascript qui le signale.

Après, mon problème, c'est qu'à chaque fois que j'appuie sur le bouton Submit, le formulaire se réinitialise (faisant disparaître ce qui a été saisi). Or je ne voudrais pas qu'il se réinitialise, mais qu'elle garde les valeurs surtout si l'utilisateur corrige le champ NNI s'il n'existe pas en table (par exemple).

Que faire donc, pour pas que le formulaire se réinitialise ? ...

Si je ne suis pas clair, n'hésitez pas à me le faire savoir.

En remerciant la communauté !

ViPHP
xTG
ViPHP | 7331 Messages

12 mars 2015, 14:04

Voici le principe avec un champs :
<form action="#" method="POST">
<input type="text" name="monInput" value="<?php
if( isset($_POST['moninput'])) )
{
   echo $_POST['moninput'];
}
?>" />
<input type="submit" />
</form>
:)

Invité
Invité n'ayant pas de compte PHPfrance

12 mars 2015, 18:36

Ça a marché au poil :)

Merci !

Eléphanteau du PHP | 10 Messages

12 mars 2015, 18:39

Pour partager :

Code : Tout sélectionner

<div id='droite'> <form method='POST'> <div> <span style="text-decoration: underline;background-color: #f38630;color:#fff">Ajouter un rôle (groupe de sécurité) à un NNI existant :</span><br> <br> <label for="nni">NNI :</label> <input type="text" id="nni" name='NNI' value='<?php if( isset($_POST['NNI'])) {echo $_POST['NNI'];}?>'/><br /> <label for="date_exp">Date d'expiration :</label> <input type="date" id="date_exp" name='date_exp' value="<?php if( isset($_POST['date_exp'])) {echo $_POST['date_exp'];} else echo date("Y").'-'.date("m").'-'.date("d")?>"> <br /> <label for="role">Groupe Sécurité :</label> <select id="role" name='gp_sec'> <?php // Récupère une liste de rôles if( isset($_POST['gp_sec'])) affiche_liste_role($connection,$_POST['gp_sec']); else affiche_liste_role($connection,''); ?> </select><br> </div> <div align='center'> <br><input type="submit" value="Créer" name='creerRoleNNI'> </div> </form> </div>
La fonction PHP affiche_liste_role($cx, $value)

Code : Tout sélectionner

function affiche_liste_role($cx, $value){ $requete=role_options($cx); while ($row = oci_fetch_array($requete, OCI_ASSOC+OCI_RETURN_NULLS)) { foreach ($row as $item){ if (trim($item)==$value) { echo "<option selected>$item</option>"; } else { echo "<option>$item</option>"; } } } }
Merci :)