Recupération valeur bouton radio

mams004 Messages postés 5 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 14 janvier 2010 - 23 janv. 2009 à 09:10
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 23 janv. 2009 à 11:51
bonjour


je voudrais récupérer la valeur du bouton radio coché:

Voici le code:





<
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">

    



          ----

        Nom:,

        ,

      

      ----

        prénom:,

        ,

      

      ----

        sexe:,

                Homme

        Femme ,

</form>

dans ajax.js

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 
 

&& 
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
:

$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
.
\"
\"
.
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
\"
.
$req
.
\"
: \"
.
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 
\"\"
;

        for(
$i
=
0
;
$i
<
count
(
$erreurs
);
$i
++)

        {

        echo 
\"- \"
.
$erreurs
[
$i
].
\".
\"
;

        }

    echo 
\"

\"
;

}

tous marche bien sauf que le genre est undefined, je n'arrive pas à le recupérer

étant novice en ajax , je pense que mon probleme se trouve sur la ligne(j'ai mis en gras) :

<table width=\"90%\" align=\"center\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\">

----

,

----

<
form method
=
"post" 
onsubmit
=
"signin(this.nom.value,this.prenom.value,this.genre.value);return false" 
action
=
"signin.php"
>




merci bien pour votre aide

3 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
23 janv. 2009 à 10:43
bonjour,

t'es sûr que 4 messages était nécessaires ?
t'es sûr que le php nous sert ?

et tu utilises this.genre.value
certes... mais lequel ? il y en a 2 ?
je pense que les navigateurs te donnent une erreur
faudrait déboguer

this.genre[index de celui qui est coché, 0 ou 1].value

Cordialement

          [mon Site] [M'écrire] Bul         
0
mams004 Messages postés 5 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 14 janvier 2010
23 janv. 2009 à 11:01
merci pour la réponse, et je m'exuse pour les 4 post , c'etait due une lenteur de connexion de chez nous .

Sinon j'ai cherché et trouvé cette fonction que jai utilisé dans ajax.js et ça a marché

function getRadioValue(){
        var lstRadios = document.getElementsByName('genre');
        for(var i=0; i<lstRadios.length; i++) if(lstRadios[i].checked) return lstRadios[i].value;
        return null;
}
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='+);
} getRadioValue

Et je continue avec des questions
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cadmin%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
mso-hyphenate:none;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-fareast-language:AR-SA;}
@page Section1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
--></style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tableau Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->Si un même couple nom – prénom est déjà dans la
base de données, comment informez l’utilisateur de l’impossibilité de stocker
ses coordonnées en lui proposant de re-saisir les champs en question (sans
rechargement de la page via AJAX).

merci beaucoup :-)
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
23 janv. 2009 à 11:51
en théorie, une seule question par message

ça facilite la recherche de ceux qui... cherchent une réponses justement

mais bon..

quand le php tente de créer il y a une erreur, ou alors
c'est d'abord testé coté serveur.
il "suffit" de retourner autre chose que lorsque la création est ok.
le javascript teste ce retour et fait ce qu'il veut, ce qu'il doit.

[mon Site][M'écrire]Bul
0