Récuperation pour passage AJAX d'une valeur d'un radiobutton [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
16 février 2009
-
Messages postés
14
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
12 mai 2009
-
Bonjour,

J'ai un petit problème avec la récuperation de la valeur d'un radio bouton :

J'ai le formulaire suivant :
<form method="post" onsubmit="inscription(this.nom.value,this.images.value,this.description.value);return false">
Nom :

Choisissez votre logo :

<!-- Partie PHP pour lire le répertoire contenant les logos -->
<?php 
  $repcou='../img/logo';
  $top=1;
  $dir = opendir($repcou);
  while($scan=readdir($dir))
  {
    if(is_file($repcou."/".$scan))
   {
     $ext = strtolower(substr($scan, strrpos($scan, '.') + 1));
     if (($ext=="jpg") || ($ext=="jpeg") || ($ext=="gif") || ($ext=="bmp") || ($ext=="png"))
     {
     echo '';
      $top=$top+1;
     }
      }
   if($top == 5 )
   {
    echo "
\n";
    $top=1;
   }
    }
    closedir($dir);
 ?>

Entrez une description :

<textarea name="description" cols="80" rows="5"></textarea>

</form>

=============
Ce formulaire envoi les données à une fonction javascript/ajax suivante :

function inscriptionguilde(guilde, image, description)
{
  var OAjax;
  if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
  else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
  document.getElementById('texte1').innerHTML=''+image+'||'+guilde+'||'+description;


  OAjax.open('POST',"request.php",true); 
  OAjax.onreadystatechange = function() 
  { 
      if (OAjax.readyState == 4 && OAjax.status==200) 
      { 
          if (document.getElementById) 
          {    
              if (OAjax.responseText =='true') { /* OK */ 
                    document.getElementById('texte1').innerHTML='Enregistrement OK !'; 
              }else{                             /* PAS OK */ 
                    document.getElementById('texte1').innerHTML=''+OAjax.responseText+''; 
              } 
          }      
      } 
  } 
  OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded'); 
  OAjax.send('Guilde='+guilde+'&Image='+image+'&Description='+description);                 
}  

===================
Cette fonction fais appel à une page php, chargé de vérifier les données et si OK met le tout dans une base.

Le problème c'est que la valeur du boutton radio est toujours marqué à "undefined".

Comment puis je dans mon contexte, récuperer sa valeur ?

Merci d'avance.

7 réponses

Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
onsubmit="inscription(this.nom.value,this.images.value,this.description.value);





Tu ne peux récuperer la valeur de tes radios de cette façon. Si cela fonctionne en postant un formulaire, ce n'est pas la même chose en javascript. Il va te falloir tester la propriété 'checked' de tes radios pour déterminer celui qui est sélectionné.
Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
Ajoute par exemple la fonction suivante :




function getRadioValue(){
        var lstRadios = document.getElementsByName('images');
        for(var i=0; i<lstRadios.length; i++) if(lstRadios[i].checked) return lstRadios[i].value;
        return null;
}

Et utilise-la de cette façon :


OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded'); 
OAjax.send('Guilde='+guilde+'&Image='+

getRadioValue()

+'&Description='+description);




Ce n'est qu'un exemple, à toi de faire marcher ton imagination.
Messages postés
22
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
16 février 2009

Ce test est donc à positionner dans la fonction javascript/ajax ?
Messages postés
22
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
16 février 2009

Que te dire, sinon un grand merci :)
Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
Ca suffira ;-)
Messages postés
1
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 juillet 2008

Hello,

J'ai à peu près le même problème. J'ai beau essayer de tester quels boutons sont checked, je n'obtiens aucun résultat. Je pense qu'il y a un pb du côté du "onclick" ou de "radiobutton[i].value", l'une des syntaxes doit être fausse et je n'arrive pas à trouver quelque chose donnant un résultat, ou je dois passer en paramètre quelque chose mais je ne sais pas quoi ni comment, les malheurs du débutant ! Voici les codes concernés :

Le FORM

        <FORM method=POST>    
       
        <tr><th>
        Supprimer

        Déclarer urgent

        En cours

        Réserver</th><th>
        </th>
        </FORM>

La fonction updateData ds le JS:

function updateData()

    var xhr_object = null;
        
    if(window.XMLHttpRequest) {// Firefox
        xhr_object = new XMLHttpRequest();
    }else if(window.ActiveXObject) {// Internet Explorer
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    }else { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        return;
    }

    choix();

    xhr_object.open("POST","ModifierItem" + choix + ".php", true);

    xhr_object.onreadystatechange = function() {
        if(xhr_object.readyState == 4)
            alert(xhr_object.responseText);
    }

    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.send(null);
}

Et l'une des nombreuses versions de la fonction choix que j'ai tenté :

function choix()
{

alert("pourqi");
  var returnValue = "";
 if (radiobutton.length == 1){
alert("je suis la");
  returnValue = radiobutton.value;
 } else {
alert("je suis ici");
  for (i=0;i<radiobutton.length;i++){
alert("je suis bien la");
   if (radiobutton[i].checked==true) {
alert(i);
    returnValue=radiobutton[i].value;
   }
  }
 }
 alert(returnvalue);
 return returnValue;
}

Si quelqu'un aurait la gentillesse de m'aider, ça ne serait pas de refus
Messages postés
14
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
12 mai 2009

[../auteur/XTREMDUKE/15638.aspx XtremDuke] merci pour ta réponse!!

Socki