Comment recuperer un id incrémenté en jquery

Fermé
AL-ALI - Modifié par jordane45 le 19/12/2015 à 14:51
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 21 déc. 2015 à 15:47
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 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
19 déc. 2015 à 14:59
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
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
	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 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
21 déc. 2015 à 14:24
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
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 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
21 déc. 2015 à 14:43
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 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
21 déc. 2015 à 14:55
	
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
21 déc. 2015 à 15:00
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 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié par jordane45 le 21/12/2015 à 15:47
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