recupération valeur bouton radio

davangida
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 16:52

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

ViPHP
ViPHP | 3607 Messages

22 janv. 2009, 17:25

Pour savoir la valeur d'un bouton radio, il faut vérifier chaque bouton radio et son attribut checked...

Invité
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 17:48

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) :
<form method="post" onsubmit="signin(this.nom.value,this.prenom.value,[b]this.genre.value[/b]);return false" action="signin.php">
en tant que novice en ajax , je suis perdu

merci pour votre aide

invité1
Invité n'ayant pas de compte PHPfrance

23 janv. 2009, 11:47

ok je répond j'ai utilisé cette fonction dans la fonction ajax
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;
}
et ça a marché

+++

ViPHP
ViPHP | 3607 Messages

23 janv. 2009, 11:50

Au passage, on est pas là pour te servir ptit bonhomme...
Donc tes remarques on s'en passera!
Content que tu ai réussit malgrès tout.

petit bon homme
Invité n'ayant pas de compte PHPfrance

23 janv. 2009, 13:28

C'est un forum d'entraide non ?

héhé :langue: :ordi:

ViPHP
ViPHP | 3607 Messages

23 janv. 2009, 13:50

Vi, mais certainement pas, de serviteurs toujours là pour toi ;)
Et comme tu as pu le constater, la réponse que je t'ai donné t'a mis sur la voie, puisque tu as finallement trouvé tout seul, comme un grand!
C'est un de nos objectifs principal!
Dans la mesure du possible, on essaye ici d'apprendre à chercher et à trouver par soit même, plutôt que d'apprendre à demander et à recevoir tout cuit!
Voilou content d'avori discuté ;) Et inscris-toi pour revenir nous voir avec de nouveaux problèmes ;)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 janv. 2009, 18:34

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute