8791 sujets

Développement web côté serveur, CMS

Bonsoir,

Dans un formulaire, je fait 2 menu deroulants dont les valeurs sont prisent d'une meme table SQL
Le 2eme menu deroulant doit etre dependant du choix fait dans le 1er

Voici le code :


<?php
$query1="SELECT champ1 FROM table";
$result1=mysqli_query($connect, $query1);
?>
<select name='upload_1'>
<option value=''>Sélection 1</option>
<?php
while($data1 = mysqli_fetch_array($result1))
{
echo '<option value='.$data1['champ1'].'>'.$data1['champ1'].'</option>';
}
?>
</select>


et le 2eme select qui doit dependre de la veleur du 1er :

<?php
$query2="SELECT champ2 FROM table WHERE champ1=$data1['champ1']";
$result2=mysqli_query($connect, $query2);
?>
<select name='upload_2' >
<option value=''>Selection 2</option>
<?php
while($data2 = mysqli_fetch_array($result2))
{
echo '<option value='.$data2['champ2'].'>'.ucfirst($data2['champ2']).'</option>';
}
?>
</select>


Le pb c'est que dans $query2, le WHERE champ1=$data1['champ1'] n'a pas l'air de pouvoir etre pris en compte

Merci de votre aide, je ne m'en sors pas depuis ... fiou ca fait un moment deja
Modifié par embargo (26 Nov 2007 - 00:29)
Salut,

Tu devras charger la page en passant la valeur du premier select pour pouvoir faire le second select, car tu ne connais pas la valeur de l'utilisateur à l'avance.

A+
Hello,

je vois bein l'idee de recharger la page, mais les menus deroulants font partie d'un formulaire je ne voudrais pas que la personne soit obligée de tout retaper a cause du rechargement de la page !!

comment faire pour qu'elle n'ait pas tout a resaisir au moment du choix du menu ?

sinon, j'ai pas bien compris ton histoire de reload, expliques moi comment faire !
Modifié par embargo (20 Nov 2007 - 10:03)
embargo a écrit :
Hello,

je vois bein l'idee de recharger la page, mais les menus deroulants font partie d'un formulaire je ne voudrais pas que la personne soit obligée de tout retaper a cause du rechargement de la page !!

comment faire pour qu'elle n'ait pas tout a resaisir au moment du choix du menu ?

bonjour,
une solution javascript me parait toute indiquée. Comme ça pas d'aller retour serveur et donc pas de reload de la page.
le script se déroule du coté client
donc il s'agit de javascript
sinon ajax peut etre une solution
J'y avais aussi pensé au JS
mais le PHP est executer avant le JS
donc je n'arrive pas a initialiser ma variable

voila ce que j'ai essayé de faire :

je met ca avant mon 1er select:

<script language="javascript">
recup_d()
{
	var d_v = document.form.list.options[document.form.list.selectedIndex].value;
	document.write(d_v);
}
</script>


juste apres je met :

<?php
	$dv =  "<script>document.write(d_v);</script>";
	echo $dv; // test echo
?>


et dans le query2, j'ajoute WHERE champ1= $dv

mais le pb, c'est que le "test echo" me le fait bien comprendre, sa valeur est : "undefined" (parce que PHP est executé avant JS ...)

Si l'un d'entre vous a la solution, je ne m'en sors pas !!

Merci encore
alexiase a écrit :
le script se déroule du coté client
donc il s'agit de javascript
sinon ajax peut etre une solution


Hello, j'ai commencé a me pencher vers Ajax, et je ne maitrise pas du tout pour le moment

alors peux tu me guider sur cette voie
hitzerod a écrit :

bonjour,
une solution javascript me parait toute indiquée. Comme ça pas d'aller retour serveur et donc pas de reload de la page.



Pour bien faire son formulaire devrait fonctionner sans javascript, et puis on met une couche JS dessus pour le confort. Smiley cligne