1
votes

comment créer plusieurs listes déroulantes de sélection en utilisant php

Je suis nouveau sur php, je voudrais générer la même liste déroulante de sélection. C'est le code que j'ai, mais cela ne fonctionne que pour le premier menu déroulant, pas pour le second ...

C'est le code que j'utilise sans succès:

<?php 
 while($row = mysqli_fetch_array($result))  
      {  
           $output .= '  
                <tr>  
                     <td>'.$row["id"].'</td>  
     				 <td class="last_name"  >
					 <select id="t1"><option>'.$row["t1"].'</option>';			
							 while($rowcode=mysqli_fetch_array($resulttasks))
									{ $output .= '<option value="'.$rowcode["id"].'">'.$rowcode["code"].'</option>' ; }
							 $output .='</select>
					 </td>  
					 <td class="last_name"  >
					 <select id="t2"><option>'.$row["t2"].'</option>';			
							 while($rowcode=mysqli_fetch_array($resulttasks))
									{ $output .= '<option value="'.$rowcode["id"].'">'.$rowcode["code"].'</option>'; }
							 $output .='</select>
					 </td>  
			</tr>';
?>

Merci d'avance pour l'aide!


2 commentaires

id = "t1" ID ne répétera pas l'utilisation d'ID différents ou n'utilisera pas de classe ici.


avant la deuxième boucle de "t2", essayez de mettre mysqli_data_seek ($ resulttasks, 0);


3 Réponses :


0
votes

L'attribut id doit être unique, remplacez les doublons par des classes communes:

<select class="t1">

Doit être:

<select id="t1">


5 commentaires

Je pense que c'est déjà unique ou est-ce que je me trompe?


@drb, vous utilisez la boucle


À l'intérieur d'un foreach, il sera dupliqué si le foreach boucle 3 fois, nous finirons avec 3 identifiants en double.


les identifiants en double ne sont que pour DOM et cela n'a rien à voir avec l'analyse HTML en PHP. Si vous remarquez, il utilise le même jeu de résultats deux fois, PHP n'exécute pas une autre boucle sur les mêmes données une fois le processus déjà. Nous devons donc réinitialiser à la 0ème ligne si nous voulons exécuter une autre boucle sur le même jeu de résultats.


Bonne prise @DanishHakimKhan +1



2
votes

Les identificateurs dupliqués ne sont pas le problème, avant la deuxième boucle de "t2" select, essayez de mettre mysqli_data_seek($resulttasks,0);

Explication: les identifiants en double ne sont que pour DOM et cela n'a rien à voir avec l'analyse HTML en PHP. Si vous remarquez, il utilise le même jeu de résultats deux fois, PHP n'exécute pas une autre boucle sur les mêmes données une fois le processus déjà. Nous devons donc réinitialiser à la 0ème ligne si nous voulons exécuter une autre boucle sur le même jeu de résultats.


2 commentaires

Merci beaucoup ! pouvez-vous me dire pourquoi je dois faire ça?


Vous pouvez vérifier mon commentaire ci-dessus dans la première réponse, et si ma solution fonctionne pour vous, rendez-vous service :).



0
votes

j'espère que cela vous aidera changez votre identifiant avec boucle exemple

$index = 1;
    for($i = 0; $i < $count_array; $i ++) {
        echo '<select id="t1' . $index . '"></select>';
        $index ++;
    }


0 commentaires