Comment recuperer un id incrémenté en jquery

Bonjour a tous ,

voici mon input

<input type="radio" name="reponses'.$nbquestionnaires.'" id="reponses'.$nbquestionnaires.'">

mon soucis comment récupérer mon id en jquery tout en récupérant aussi $nbquestionnaires.

genre pour recuperer mon id je sais qu'on fait
var reponse=jQuery("#reponses" ).val();


mon soucis comment reponses suivit de la valeur qui contient $nbquestionnaires

example :si $nbquestionnaires contient le chiffre 1,2,3.........

comment recuperer var reponse=jQuery("#reponses+$nbquestionnaires" ).val();
qui sera comme ca var reponse=jQuery("#reponses1" ).val(); ou
var reponse=jQuery("#reponses2" ).val();

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

3 réponses

  1. Modérateur
    Bonjour,

    As tu entendu parlé des DATA-ATTRIBUTES ?

    
    <input type="radio" 
              name="reponses" 
              id="reponses_'.$nbquestionnaires.'" 
              data-nbquestionnaires="'.$nbquestionnaires.'" 
              value="1">
    


    Et des SELECTEURS en JQUERY ? il existe le :checked .... très pratique pour les radios et les checkboxes.

    var valueReponse = $("input[name='reponses']:checked").val();
    var nbquestionnaires = $("input[name=reponse]:checked").data('nbquestionnaires');
    var id =  $("input[name=reponse]:checked").attr('id');
    


    0
    1. bjr jordane45 pour etre claire dans ma question,j'ai deux boutons radio qui sont:
      
      '<input type="radio" name="reponses_'.$nbquestionnaires.'" id="oui_'.$nbquestionnaires.'" data-nbquestionnaires="'.$nbquestionnaires.'"  style="display:inline">oui<br/>
      
         <input type="radio"  name="reponses_'.$nbquestionnaires.'" id="non_'.$nbquestionnaires.'" data-nbquestionnaires="'.$nbquestionnaires.'" style="display:inline">non 
      
      lorqu'on check sur oui il recupere l'identifiant ou on a clické sur le bouton radio.
      
      lorque je fais avec ce que tu as mis il n'affiche rien c'est a dire la recuperation ne se fait pas
      
      var valueReponse = $("input[name='reponses']:checked").val();
      
      0
  2. 	var valueReponse = jQuery("input[name='reponses_']:checked").val();
    												
    												var nbquestionnaires = jQuery("input[name=reponses_]:checked").data('nbquestionnaires');
    												
    												var id =  jQuery("input[name=reponses_]:checked").attr('id');
    													 alert(nbquestionnaires);exit(); avec ca rien ne s'affiche 
    0
    1. Modérateur
      En même temps... si tu changes tout ce que j'ai écrit .. normal que ça ne fonctionne plus.....

      Ton HTML doit être comme ceci :
      <input type="radio" 
                name="reponses" 
                id="reponses_'.$nbquestionnaires.'" 
                data-nbquestionnaires="'.$nbquestionnaires.'" 
                value="1">
      


      Et dans ce cas... le JAVASCRIPT sera :
      var valueReponse = $("input[name='reponses']:checked").val();
      var nbquestionnaires = $("input[name='reponse']:checked").data('nbquestionnaires');
      var id =  $("input[name='reponse']:checked").attr('id');
      
      //pour afficher
      alert("ID ="+id);
      alert("nbquestionnaires ="+nbquestionnaires );
      alert("valueReponse ="+valueReponse );
      
      0
      1. mon code html est dans une boucle foreach donc cout
        mon html deviens comme ca
        oui<input type="radio" 
                  name="reponses_'.$nbquestionnaires" 
                  id="oui_'.$nbquestionnaires.'" 
                  data-nbquestionnaires="'.$nbquestionnaires.'" 
                  value="1">

        non<input type="radio" 
                  name="reponses_'.$nbquestionnaires" 
                  id="non_'.$nbquestionnaires.'" 
                  data-nbquestionnaires="'.$nbquestionnaires.'" 
                  value="1">

        dans ce cas ,comment on ecrira cette ligne,surtout le name comment on l'ecrira?

        var valueReponse = $("input[name='reponses??????']:checked").val();

        parce que dans la premiere ligne du foreach on aura
        id=oui_0 ,name=reponses_0 pour le oui
        id=non_0 ,name=reponses_0 pour le non
        deuxieme lignes
        id=oui_1 ,name=reponses_1 pour le oui
        id=non_1 ,name=reponses_1 pour le non
        0
      2. Modérateur
        POURQUOI tiens tu à mettre qqchose dans le NAME ???
        Ecris SIMPLEMENT : name='reponse' dans ton INPUT !
        Il est où le souci ????

        Pour gagner du temps... donnes nous le code complet de ta page ..... parce que là ... tu me fais tourner en rond !
        0
      3. @jordane45
        	
        foreach ($ToutesLesquestionnaires as $Unequestionnaire)
        			{
        		
        				
        				
        
        				$listequestionnaires.="<tr bgcolor='#FFFFFF' style='font-size:11px'>";
        				$listequestionnaires.="<td class='modal_form'>".$Unequestionnaire->idquestions_sante."</td>";
        				$listequestionnaires.="<td class='modal_form' style='white-space:inherit'>".$Unequestionnaire->questions_santelibelle."</td>";	
                        $listequestionnaires.='<td class="modal_form"><input type="radio" name="reponses_'.$nbquestionnaires.'"id="oui_'.$nbquestionnaires.'" data-nbquestionnaires="'.$nbquestionnaires.'"  style="display:inline">oui<br/>';
        				$listequestionnaires.='<input type="radio" name="reponses_'.$nbquestionnaires.'" id="non_'.$nbquestionnaires.'" data-nbquestionnaires="'.$nbquestionnaires.'" style="display:inline" value="1">non</td>';
                        $listequestionnaires.='<td class="modal_form"><textarea name="autres_'.$nbquestionnaires.'" id="autres_'.$nbquestionnaires.'" style="width:100px;height:25px;"></textarea></td>';			
        				$listequestionnaires.="</tr>";
        					
        			}
        			
        				$listequestionnaires.="</table>";
        				
        		}
        

        si je mets simplement reponses dans mon name,mes deux boutons radios oui et non pouront etre choisit en meme tps les deux,or je souhaite selectionner qu'un seul bouton ca d soit oui soit non
        0
      4. @alalicomment récupérer les informations du name incrémenté,c'est ça mon soucis,sinon si on incrémente pas le name on pourra selectionner les deux buttons en meme temps,or moi je veux qu'on selectionne qu'un seule bouton.
        0
      5. Modérateur
        Alors on va faire autrement....
        On va passer par une classe fictive qu'on va nommer "radioOuiNon"

        
        foreach ($ToutesLesquestionnaires as $Unequestionnaire){
         $listequestionnaires.="<tr bgcolor='#FFFFFF' style='font-size:11px'>
                                 <td class='modal_form'>".$Unequestionnaire->idquestions_sante."</td>
                     <td class='modal_form' style='white-space:inherit'>".$Unequestionnaire->questions_santelibelle."</td> 
                     <td class='modal_form'>
                      <input type='radio' 
                              class ='radioOuiNon'
                          name='reponses_$nbquestionnaires' 
                          id='oui_$nbquestionnaires' 
                          data-nbquestionnaires='$nbquestionnaires'  
                          style='display:inline'>oui<br/>
                      <input type='radio' 
                             class ='radioOuiNon'
                          name='reponses_$nbquestionnaires' 
                          id='non_$nbquestionnaires'
                          data-nbquestionnaires='$nbquestionnaires' 
                          style='display:inline' value='1'>non
                     </td>';
                     <td class='modal_form'>
                      <textarea name='autres_$nbquestionnaires' 
                                id='autres_$nbquestionnaires' 
                           style='width:100px;height:25px;'></textarea>
                     </td>';   
                     </tr>";
           
         }
        


        Ensuite, en Javascript, tu peux simplement faire :

        var radioElm =$(".radioOuiNon:checked");
        
        var valueReponse = elmChecked.val();
        var nbquestionnaires = elmChecked.data('nbquestionnaires');
        var id =  elmChecked.attr('id');
        
        //pour afficher
        alert("ID ="+id);
        alert("nbquestionnaires ="+nbquestionnaires );
        alert("valueReponse ="+valueReponse );
        
        
        0