Plusieurs SELECT

Petit nouveau ! | 3 Messages

27 juil. 2006, 10:36

Bonjour,

Le script qui me fait des problémes est le suivant :

Une boucle for qui enveloppe une balise select

<form ****>

For *********
<select ****>
<option***></option>
</select>
end for

</form>


et je veux recupérer les valeurs selectionnés des diff balises select


c très urgent

Merci

Eléphant du PHP | 177 Messages

27 juil. 2006, 10:42

Qu'est qui te pose probleme ta boucle for ou le traitement de ton formulaire ????
La divination c pas mon fort ^^ donne tes vrai bout de codes on pourras cerner ou est le prob pour que tu puisse le resoudre

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 juil. 2006, 10:42

Salut,
c très urgent
Merci
Commentaire pas forcément obligatoire dans la mesure ou personne ne travaille pour toi (ce qui est urgent pour toi ne l'est pas forcément pour les autres) :wink:

Pour la question tu peux donner un nom dynamique aux listes avec la concaténation de la variable de boucle:
for ($i ....)
   echo '<select name="select_'.$i.'">';
avec un champ caché tu récupères la valeur de $i pour le traitement de récupération où tu fait de même (boucle + concaténation).

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 3 Messages

27 juil. 2006, 10:56

Bon, il est urgent pour moi :wink:

Le script est le suivant:

$req = mysql_query("SELECT id_course from package where  id_package = '$pack' ");	
		
$resultat = mysql_fetch_array($req);
$course = $resultat[0];

if ( $course != 3 )
{
$req = mysql_query("SELECT * from tee_time where id_course = '$course' AND date_tee_time <= '$calendarDate2' AND date_tee_time >= '$calendarDate1'  AND nbre_dep != 0  ORDER BY date_tee_time, heure_tee_time ");	
}

else{ // Si course = 3
$req = mysql_query("SELECT * from tee_time, handicap_tee_time  where tee_time.id_course = '$course' AND tee_time.date_tee_time <= '$calendarDate2' AND tee_time.date_tee_time >= '$calendarDate1'  AND tee_time.heure_tee_time = handicap_tee_time.time AND handicap_tee_time.handicap >= '$hdc' AND tee_time.nbre_dep != 0 ORDER BY tee_time.date_tee_time, tee_time.heure_tee_time ");
}
						
if ( mysql_num_rows ($req) )
{
$date = "";
echo "<form name='form1' method='post' action='check_book.php'><table width='85%' border='0' align='center'>
							
<input name='players' type='hidden' value='$noplayers'>
<input name='pack' type='hidden' value='$pack'>";
							
while ( $resultat = mysql_fetch_array( $req ))
{
if ( $date != $resultat[2] )
{
$date = $resultat[2];
$i = 0 ;
echo "
echo"
<tr>
<td>&nbsp;</td>
<td bgcolor='$col'><div align='center'><font face='Arial, Helvetica, sans-serif' size='2'>$resultat[3]  </font></div></td>
<td bgcolor='$col'><div align='center'>
													<select name='select' class='SELECT'>
														<option value='1'>1</option>";
														if ( $resultat[1] == 2 )
															echo "<option value='2'>2</option>";
														if ( $resultat[1] == 3 )
														{
															echo "  <option value='2'>2</option>
																	<option value='3'>3</option>";
														}
														if ( $resultat[1] == 4 )
														{
															echo "  <option value='2'>2</option>
																	<option value='3'>3</option>
																	<option value='4'>4</option>";
														}		
													echo"</select>
												</div></td>
												<td bgcolor='$col'><div align='center'>
													<input type='checkbox' name='booking[]' value= $id_tee_time >
												</div></td>
</tr>";
$i ++;
}
echo "
	<tr>
	<td colspan='4'><br><div align='right'><input name='Submit' type='submit' class='submit' value='$buton'></div></td>
</tr>
</table></form>	";
}


Le probléme est que je veux recupérer juste les valeurs des select dont les cases à cocher correspondant sont cochés

c urgent :D

Eléphant du PHP | 66 Messages

27 juil. 2006, 11:05

Votre question n'est pas clair
mais je vous donne un exemple:
par exemple j'ai un nbre n de catégories et je veux récupérer les sous catégories:
structure des deux tables:
"cats"= "id_cat" | "nom_cat"
"sub_cats"="id_sub" | "name_sub" | "cat"

où "cat" est le "id_cat" de la categorie supérieur
<?
$cats_rq=mysql_query("SELECT nom_cat,id_cat FROM cats");
while($cats=mysql_fetch_array($cats_rq))
{
  $sub_cat_rq=mysql_query("SELECT id_sub,name_sub FROM sub_cats WHERE cat=".$cats["id_cat"]);
  echo "<OPTION name=cat$nbr >";
     while($sub_cats=mysql_fetch_array($sub_cat_rq))
          echo "<OPTION value=".$sub_cats["id_sub"]." > ".$sub_cats["name_sub"]."</OPTION>";

$nbr++;
}

echo "<br> le nombre des SELECT est ".($nbr-1);
?>
donc tu peux récupérer le nbr des SELECT en le mettant dans un hidden ou un truc comme ça
Mess With Best or die With the Rest

Petit nouveau ! | 3 Messages

27 juil. 2006, 11:11

Merci

pour être plus clair, dans la boucle while j'ai deux balises : une SELECT et l'autre CHECKBOX

Je veux recupérer les valeurs des balises SELECT dont le checkbox correspondant est coché

J'espéer que je suis clair
Merci

Eléphant du PHP | 66 Messages

27 juil. 2006, 11:14

Merci

pour être plus clair, dans la boucle while j'ai deux balises : une SELECT et l'autre CHECKBOX

Je veux recupérer les valeurs des balises SELECT dont le checkbox correspondant est coché

J'espéer que je suis clair
Merci
la mm chose que les select devant chaque SELECT tu met un checkbox qui a le mm " $nbr "
donc après si tu va appeller

select_2 certainement le checkbox check_2 devant sera celle qui est devant le SELECT
Mess With Best or die With the Rest

Eléphant du PHP | 177 Messages

27 juil. 2006, 11:14

Et avec une boucle while ?
While (isset($_post[select])){
$a=$_post[select];
$req=mysql_query("SELECT '$a' FROM ...... WHERE ......);

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 juil. 2006, 11:50

C'est encore plus facile avec une checkbox accompagnant les listes.

name des listes => "select_$i"
name des checkbox => "check[]" avec "value=$i"

ensuite tu boucles sur les cases qui ont été cochées avec uhn foreach:
// tester que $_POST['check']  est bien un tableau is_array() et débuter $i à 0

foreach($_POST['check'] as $value)
{
   $valeur_liste = $_POST['select_'.$value];
   echo $valeur_liste.'<br />';
}
Seules les cases cochées renvoient une valeur tu peux donc concaténer avec les ces valeurs pour retrouver les listes.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute