IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Bouton "reset" [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Bouton "reset"
    Bonjour,

    Je suis débutant en php, l'objectif est d'afficher une liste, et de pouvoir faire un filtre sur un des champs grâce à un formulaire de recherche simple et de réinitialiser la liste en cas de besoin.

    1) Je charge la page avec par défaut une requête qui m'affiche la liste et les champs souhaités.

    2) Un formulaire me permet d'extraire sur le champ user_nom une liste filtrée.

    Jusque là, cela fonctionne, je soumet la requête sur le champ user_nom, et j'ai bien la liste filtrée qui s'affiche.

    Le bouton Reset remet à O le formulaire et me reliste tout les enregistrements..

    La ou j'ai un souci, c'est que je souhaiterai que la valeur saisie dans le Input reste après la validation du form, cela aussi cela fonctionne,mais ce qui ne fonctionne plus, c'est que je n'arrive pas à réinitialiser le formulaire lors du click sur le bouton Reset.

    J'ai parcouru les forum en français et en anglais pendant plusieurs heures et essayé pas mal de solutions php ou js sans succès.

    Si quelqu'un à une solution simple et abordable pour un débutant, elle est la bienvenue.

    Merci d'avance

    Voici mon code avec les annotations de ce qui marche et ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <form id="monform" name="form1" method="get" action="<?php echo $_SERVEUR['PHP_SELF']; ?> ">
      <center>
    	<!-- SOLUTION QUI FONCTIONNE AVEC CE INPUT -->
        <label>Recherche par nom : <input type="text" id="recherche" name="recherche"  value="" /></label>
    	<!-- SOLUTION QUI FONCTIONNE, LA VALEUR DU INPUT EST PRESERVER LORS DU SUBMIT MAIS RESET NE FAIS RIEN -->
    	<!-- <label>Recherche par nom : <input type="text" name="recherche"  value="<?php if (isset($_GET['recherche'])) echo $_GET['recherche']; ?>"/> </label> -->
    	<label>
    	<input type="submit" name="submit" value="Envoyer" />
    	<input type="reset" name="reset" value="Réinitialiser la liste" />
    	</label>
    	<!-- CI DESSOUS TENTATIVE POUR VIDER LA VARIABLE, MAIS CELA NE FONCTIONNE PAS
    	(cela a fonctionné en partie, le INPUT était remis à vide, 	mais la liste n'était pas rafraichie, 
    	mais au fur et à mesure de mes manips, je n'ai pas réussi à retrouver ce fonctionnement
    	<label>
    	<input type="submit" name="submit" value="Envoyer" />
    	<input type="reset" name="reset" value="Effacer" <?php if($_GET["reset"]) {$_GET['recherche'] = "";} ?> /> 
    	</label>
    	-->
    	</center>
    </form>
    Merci de votre aide, n'oublier pas que je débute !!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Pour remettre ton formulaire à zéro, il y a plusieurs possibilités :

    1) Voir du coté du javascript

    2) Faire un lien sur un bouton qui recharge ta page, tu n'auras plus aucun champ rempli (attention cependant aux pertes de données...)

    3) Surement d'autres solutions qui ne me viennent pas dans l'immédiat.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Une réponse qui n'en est pas une !
    J'ai déjà été voir du coté de js et je ne suis pas capable de mettre en œuvre pour le moment une solution qui fonctionne.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le solution 2 peut s'écrire simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form id="monform" name="form1" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?> ">
      <div style="text-align: center">
    	<label>Recherche par nom : <input type="text" name="recherche"  value="<?php if (isset($_GET['submit']) && isset($_GET['recherche'])) echo $_GET['recherche']; ?>"/> </label>
    	<label>
    	<input type="submit" name="submit" value="Envoyer" />
    	<input type="submit" name="reset" value="Effacer" /> 
    	</div>
    </form>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Amélioration mais pas encore le résultat souhaité !
    Merci à sabotage pour la réponse qui fait avancer le shmilibilimick !

    La valeur du Input est maintenant remise à vide, mais !

    La liste ne se rafraichie pas.

    Merci

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Heu c'est quoi cette liste ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 62
    Points : 52
    Points
    52
    Par défaut La liste
    C'est la liste des enregistrements avant qu'elle ne soit filtrée par le form.

    Par défaut, lorsque j'ouvre ma page php, j'ai une liste qui s'affiche avec 400 enregistrements.

    Le form me permet de filtrer sur le champ use_nom.

    Cela fonctionne, et en fonction de la chaine saisie dans le input, j'ai la liste des enregistrements filtrés qui s'affiche.

    Par contre, je souhaiterai que le bouton Reset réinitialise complétement la liste et m'affiche à nouveau la totalité des enregistrements comme à l'ouverture de la page

    Voici le codes des requettes pour que cela soit plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    if(isset($_GET['recherche']))
    $requete="SELECT
    use_nom,
    use_prenom,
    use_postetel,
    use_localisation,
    use_etage,
    use_bureau,
    use_mail
    FROM USER WHERE use_actif='' AND use_nom LIKE  '%".$_GET['recherche']."%' ORDER BY use_nom ";
    else
    //Requette à l'ouverture de la page qui affiche la liste des agents actif de GM
    $requete="SELECT
    use_nom,
    use_prenom,
    use_postetel,
    use_localisation,
    use_etage,
    use_bureau,
    use_mail
    FROM USER WHERE use_actif='' ORDER BY use_nom ";
    //Requette fin
    $resultat=mysql_query($requete);
    Ce que je souaiterai, c'est de préserver dans le champs Input la valeur saisie :

    Ce qui donne cela (code fourni par sabotage):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form id="monform" name="form1" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?> ">
      <div style="text-align: center">
    	<label>Recherche par nom : <input type="text" name="recherche"  value="<?php if (isset($_GET['submit']) && isset($_GET['recherche'])) echo $_GET['recherche']; ?>"/> </label>
    	<label>
    	<input type="submit" name="submit" value="Envoyer" />
    	<input type="submit" name="reset" value="Effacer" /> 
    	</div>
    </form>
    Mais lors du reset, le Input est bien remis à vide, mais la liste n'est pas réactualiser, c'est à dire que tout les enregistrements ne s'affichent pas comme c'est le cas à l'ouverture de la page.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ajoute une condition vérifiant que le bouton n'a pas été utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_GET['recherche']) && !isset($_GET['reset']) {
    $requete="SELECT
    ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Cela fonctionne maintenant
    Merci, cela fonctionne à merveille.

    J'ai juste ajouté au dessus de ma requête pour le form la ligne fourni par sabotage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // Requette généré par le Form
    if(isset($_GET['recherche']) && !isset($_GET['reset']))
    $requete="SELECT
    use_nom,
    use_prenom,
    use_postetel,
    use_localisation,
    use_etage,
    use_bureau,
    use_mail
    FROM USER WHERE use_actif='' AND use_nom LIKE  '%".$_GET['recherche']."%' ORDER BY use_nom ";
    Ensuite, le Form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form id="monform" name="form1" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?> ">
      <div style="text-align: center">
    	<label>Recherche par nom : <input type="text" name="recherche"  value="<?php if (isset($_GET['submit']) && isset($_GET['recherche'])) echo $_GET['recherche']; ?>"/> </label>
    	<label>
    	<input type="submit" name="submit" value="Filtrer par nom" />
    	<input type="submit" name="reset" value="Réinitialiser la liste" /> 
    	</div>
    </form>
    A bientôt !

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo