Comment recuperer un id incrémenté en jquery

AL-ALI -  
jordane45 Messages postés 40050 Statut Modérateur -
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

jordane45 Messages postés 40050 Statut Modérateur 4 755
 
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
alali
 
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
alali
 
	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
jordane45 Messages postés 40050 Statut Modérateur 4 755
 
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
alali
 
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
jordane45 Messages postés 40050 Statut Modérateur 4 755
 
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
alali > jordane45 Messages postés 40050 Statut Modérateur
 
	
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
alali > alali
 
comment 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
jordane45 Messages postés 40050 Statut Modérateur 4 755
 
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