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

JavaScript Discussion :

[AJAX] recupération valeur bouton radio


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut [AJAX] recupération valeur bouton radio
    bonjour
    je voudrais récupérer la valeur du bouton radio coché

    voici le code :
    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
    PHP:
    <script type="text/javascript" src="ajax.js"></script>
     <form method="post" onsubmit="signin(this.nom.value,this.prenom.value,this.genre.value);return false" action="signin.php">
        <div id="msg"></div>
        <table width="500" border="0" cellspacing="0">
          <tr>
            <td>Nom:</td>
            <td><input name="nom" type="text" /></td>
          </tr>
          <tr>
            <td>prénom:</td>
            <td><input name="prenom" type="text" /></td>
          </tr>
          <tr>
            <td>sexe:</td>
            <td>
            <input type="radio" name="genre" value="h" >Homme<br>
            <input type="radio" name="genre" value="f">Femme </td>
    </form>
    la fonction Ajax.js
    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
    PHP:
    function signin(nom,prenom,genre)
    {
        var OAjax;
        if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
        else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP'); 
        OAjax.open('POST',"signin.php",true);
        OAjax.onreadystatechange = function()
        {
            if (OAjax.readyState == 4 && OAjax.status==200)
            {
                if (document.getElementById) 
                {    
                    if (OAjax.responseText =='true') {
                    alert('l\'opération c\'est bien passé');    
                    document.getElementById('msg').innerHTML='';        
                    }else{
                    document.getElementById('msg').innerHTML=OAjax.responseText;
                    }
                }
            }
        }
        OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
        OAjax.send('nom='+nom+'&prenom='+prenom+'&genre='+genre);
    }
    signin.php
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    $erreurs=array();//tableau qui stocke les erreurs.
     
    if($_POST['nom']==""){
        $erreurs[]='Entrer votre nom';
    }
     
    if($_POST['prenom']==""){
        $erreurs[]='Entrer votre prénom';
    }
     
    if($_POST['genre']==""){
        $erreurs[]='Entrer votre sexe';
    }
     
    if(count($erreurs)==0)
    {
     
        if (!mysql_pconnect('localhost','root','')) {print "OpenSQL_Cyber, mysql_connect"; exit;}
        if (!mysql_select_db('personne')) {print "OpenSQL_Cyber, mysql_select_db, ".mysql_error(); exit; }
     
        $req="select id from client where nom='".$_POST['nom']."' and prenom='".$_POST['prenom']."' ";
     
        if (!$res=mysql_query($req)) 
        {
             print $req."<br>".mysql_error();
        }
        elseif (mysql_num_rows($res)>0) 
        {
            print "doublons:";
        }
        else
        {    
                $req="insert into client (";
                $req.="nom, prenom, sexe ";
                $req.=") values (";
                $req.="\"".$_POST['nom']."\", \"".$_POST['prenom']."\",\"".$_POST['genre']."\")"; 
        print $req;
                if (!$res=mysql_query($req)) {print "Erreur<br>".$req."<br>: ".mysql_error();}
                else
                {    
                    $newID=mysql_insert_id();
                }
         }
    //ici tu enregistres les valeurs dans la bdd 
        echo "true";//cette valeur sera traité par ajax est vaut dire que tt passe pour le bien
    }
    else
    {
        echo "<p class='erreur'>";
            for($i=0;$i<count($erreurs);$i++)
            {
            echo "- ".$erreurs[$i].".<br />";
            }
        echo "</p>";
    }
    tous marche bien sauf que le genre est undefined, je n'arrive pas à le recupérer

    merci bien pour votre aide

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Même si c'est plutôt du PHP qui pose problème ici, je vais te répondre quand même sur un point :
    Ton test sur $_POST['genre'] ne fait qu'une comparaison avec une chaine vide, ce qui ne peut pas arriver, car c'est soit "undefined", soit "f", soit "v" donc il faut remplacer cette vérification par :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // ...
    if(!isset($_POST['genre'])){
        $erreurs[]='Entrer votre sexe';
    }
     
    // ...
    Cela dit, ton problème cesserait d'exister si tu donnais une valeur par défaut selected="selected" à l'un des deux boutons radio, qui serait remplacée (le cas échéant) par un clic utilisateur sur l'autre bouton, mais garantirait qu'une valeur existe. ^^

  3. #3
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut
    merci bien pour la réponse mais étant novice en ajax , je pense que mon probleme se trouve sur la ligne(j'ai mis en gras) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" onsubmit="signin(this.nom.value,this.prenom.value,this.genre.value);return false" action="signin.php">
    je pense que ç'est pas la bonne syntaxe pour récupérer la valeur d'un bouton radio.
    On m'a dit aussi de verifier la valeur de la bouton radio et son attribut checked mais sait pas quoi faire

    merçi

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par mamyh4 Voir le message
    ... et son attribut checked ...
    Oui, d'ailleurs j'ai fait deux confusions je crois ()

    - j'avais mal vu l'envoi de la valeur ^^

    this ---> le formulaire
    this.genre ---> le groupe de boutons radio ayant ce name
    this.genre.value ---> n'existe pas car on essaie d'accéder à la propriété "value", non pas d'un élément, mais d'une collection (ici deux éléments)

    - tu as raison c'est bien "checked" et non "selected" mais le principe est le même : il faut une valeur par défaut.

Discussions similaires

  1. Valeur bouton radio
    Par Mat_DZ dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/11/2006, 10h47
  2. pb valeur bouton radio
    Par bogsy15 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/08/2006, 09h12
  3. comment envoyer valeur bouton radio ds mysql
    Par michka999 dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/08/2006, 14h25
  4. recuperer valeur bouton radio boutons radio
    Par ahnac dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2006, 09h30
  5. Recuperer valeur bouton radio sans reload ni onclick
    Par philippejuju dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/01/2006, 11h24

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