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 :

Aucune valeur renvoyée quand le champ n'est pas renseigné ? (bouton radio)


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Points : 77
    Points
    77
    Par défaut Aucune valeur renvoyée quand le champ n'est pas renseigné ? (bouton radio)
    Salut,

    Voilà sur mon site j'ai réalisé une fonction recherche afin d'afficher les étudiants contenus dans ma table sql selon 3 critères.

    - le prénom
    - le nom
    - le sexe (Homme ou Femme)

    Pour cela j'ai fait un formulaire de recherche en PHP que voici :

    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
    24
    25
    26
    27
    28
    29
    <form name="recherche" method="post" action="un-etudiant.php">
     
      <table border="0" width="461" align="center">
        <tr>  
          <td><p><b>NOM :</b></p></td>
          <td>
          <input type=text size=20 name=nom>  
          </td></td>
        </tr>
        <tr>  
          <td><p><b>PRENOM :</b></p></td>
          <td>
          <input type=text size=20 name=prenom>  
          </td></td>
        </tr>
        <tr>
        <td><p><b>SEXE :</b></p></td>
            <td>
        	<input type="radio" name="sexe" value="Homme">Homme
    		<input type="radio" name="sexe" value="Femme">Femme
    		</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td colspan="2"><font face="Verdana">
          <input type="submit" name="Envoyer" value="Envoyer" onClick="this.value='Envoi en cours ...'" style="border: 1px solid #000080; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #FFFFFF"></font></td>
        </tr>
      </table>
    </form>
    J'ai réussi à traiter le cas où la personne qui effectue la recherche ne rentrerais pas le champ nom et prénom en comparant $_POST['nom'] et $_POST['prenom'] à NULL dans ma page de traitement. Ces 2 variables sont à NULL mais elles existent quand même !

    Mais pour ce qui concerne le sexe : $_POST['sexe'], aucune variable n'est renvoyé quand le sexe n'est pas renseigné !

    J'ai testé avec isset mais la variable n'existe carrément pas contrairement au deux autres !

    Notice: Undefined index: sexe
    Est-ce parce que ce sont des boutons radio ?
    Il faudrait que cette variable prenne la valeur NULL afin que je puisse gérer un traitement...

    Comment dois-je faire ?

    Merci !

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par bond70 Voir le message
    Il faudrait que cette variable prenne la valeur NULL afin que je puisse gérer un traitement...

    Pourquoi ne pas tester l'existence du

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(!isset($_POST['sexe']))
    // ton bouton radio n'a pas été sélectionné

    plutot ?
    Ou sinon affecter une valeur par défaut à ton bouton radio (attribut checked html)

  3. #3
    Membre régulier Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Points : 77
    Points
    77
    Par défaut
    C'est bon j'ai rajouté çà (en rouge)dans ma page de traitement et çà marche, c'était tout con !

    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    if(!isset($_POST['sexe'])){
    $_POST['sexe']=null;
    }

    $sexe=$_POST['sexe'];

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Sinon fais gaffe à bien sécuriser tes variables avec mysql_real_escape_string si tu fais appel à une base

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par bond70
    C'est bon j'ai rajouté çà (en rouge)dans ma page de traitement et çà marche, c'était tout con !
    Pourquoi une valeur Nulle ?
    Existe il des étudiants n'ayant pas de sexe ?

    Citation Envoyé par Madfrix
    Ou sinon affecter une valeur par défaut à ton bouton radio (attribut checked html)
    Faudrait proposer un sexe par défaut, comme te l'as suggéré Madfrix.
    Ca me semble plus logique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="radio" name="sexe" value="Homme" checked="checked">Homme
    <input type="radio" name="sexe" value="Femme">Femme
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  6. #6
    Membre régulier Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Points : 77
    Points
    77
    Par défaut
    Salut,

    Le problème de proposer un sexe par défaut c'est que si la personne recherche les étudiants de sexe féminin et masculin çà posera un problème...Alors qu'avec la valeur NULL on peut afficher les hommes ainsi que les femmes.

    Merci !

  7. #7
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par bond70
    Le problème de proposer un sexe par défaut c'est que si la personne recherche les étudiants de sexe féminin et masculin çà posera un problème...Alors qu'avec la valeur NULL on peut afficher les hommes ainsi que les femmes.
    Et bien c'est la requête SQL qui effectue la recherche qui est mal construite.
    De plus, je ne vois absolument pas le rapport, car le choix/l'insertion du sexe n'est pas effectué lors d'une recherche, mais lors de la création de la personne.

    Et si toutes les personnes choisissent un sexe, et non ne rien sélectionner (donc aucune valeur Nulle), comment feras tu pour les recherche ?
    Il y a une démarche ici qui n'est pas clair.

    Ceci dit, la réponse, la solution tu la donne :
    Si tu veux faire des recherches indépendamment du sexe, il suffit de ne pas faire allusion au champ "sexe", de ne pas rajouter comme critère le sexe de l'un ou de l'autre.
    Ou alors, l'indiquer explicitement : SELECT machin FROM table WHERE (sexe = 0 OR sexe = 1)

    C'est un faut problème.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. tester si un champs n'est pas vide
    Par k-eisti dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 30/05/2008, 14h10
  2. Clique souris quand la fenêtre n'est pas en focus
    Par Orfvz dans le forum GTK+ avec Python
    Réponses: 0
    Dernier message: 19/04/2008, 03h30
  3. Quand ça tourne, c'est pas bien
    Par zooffy dans le forum ASP.NET
    Réponses: 10
    Dernier message: 29/05/2007, 17h38
  4. [PHP-JS] Comment savoir quel champ n'est pas rempli ?
    Par illight dans le forum Langage
    Réponses: 8
    Dernier message: 28/03/2007, 15h03
  5. faire un forward quand l'action n'est pas trouvée
    Par newbeewan dans le forum Struts 1
    Réponses: 1
    Dernier message: 07/03/2007, 13h22

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