OVH Cloud OVH Cloud

menu dynamique

4 réponses
Avatar
leblaireau
Bonjour

Quelque a-t-il déjà fait des menus dynamiques avec mysql et php
J'ai déjà vu mais c'est du javascript deux listes déroulantes "liées"
entre elles et alimentées par des requetes sql. On choisit un element
de la 1ere et apparait dans la 2ème liste les éléments liés

Quelqu'un a-t-il une piste ou mieux un script me permettant de voir
comme celà fonctionne ?

Amicalement

4 réponses

Avatar
VooDoo
voila un exemple de script:
admettons que la page s'appelle index.
insertion de 2 combos lieu et emplacement.
L'emplacement dépend du lieu selectionné.
la table combos, comprend tous les couples lieu-emplacement.
C'est pas la meilleure facon, mais bon n'etant pas un xpert, j'y suis arrivé
comme ca.
A+
VooDoo

Dans ton head:
<script language="JavaScript">
<!--
function menuderoulant(selection){
eval("location='"+selection.options[selection.selectedIndex].value+"'");
}


dans le body:
<table ...>
<td >
<?
$sql="SELECT DISTINCT lieu FROM combos ORDER BY lieu ASC ";
$result=mysql_query($sql);
echo '<select name="lieu" onChange="menuderoulant(this)"
style="color:#000000;background-color:#ffffff">';
while ($row=mysql_fetch_array($result))
{
echo '<option value="index.php&slieu='
.$row[lieu]
.'"';
if ($row[lieu]==$slieu)
{
echo " selected";
}

echo '>'
.$row[lieu]
.'</option>';
}
echo '</select>';
?>
</td>
<td rowspan="6" valign="top" colspan="2" width="50%"><strong><? echo
_Inputtext7 ?></strong><br>
<textarea name="avarie" cols="60" rows="6" id="textarea"><?echo
$avarie ?></textarea>
</td>
</tr>
<tr>
<td width="20%" align="right"><? echo _Inputtext2 ?></td><td width="30%">
<? $sql2="SELECT DISTINCT emp FROM combos where lieu='$slieu' ORDER BY
emp ASC ";
$result2=mysql_query($sql2);
echo '<select name="emp" onChange="menuderoulant(this)">';
while ($row2=mysql_fetch_array($result2))
{
echo '<option value="index.php&slieu='.$slieu.'&semp='
.$row2[emp]
.'"';
if ($row2[emp]==$semp)
{
echo " selected";
}

echo '>'
.$row2[emp]
.'</option>';
}
echo '</select>';
?>
</td>
</tr>

...
Avatar
christophe.meresse
Tu peux voir là: <http://minilien.com/?lsFM8fncN2>
Avatar
leblaireau
salut

merci de vos reponses et je m'en vais tester tout celà

a+

a écrit dans le message de news:

Tu peux voir là: <http://minilien.com/?lsFM8fncN2>


Avatar
Jean-Marc Molina
leblaireau a écrit/wrote :
Quelque a-t-il déjà fait des menus dynamiques avec mysql et php
J'ai déjà vu mais c'est du javascript deux listes déroulantes "liées"
entre elles et alimentées par des requetes sql. On choisit un element
de la 1ere et apparait dans la 2ème liste les éléments liés

Quelqu'un a-t-il une piste ou mieux un script me permettant de voir
comme celà fonctionne ?


Je dois deux solutions :
- Utiliser JavaScript pour mettre à jour la seconde liste en fonction de la
sélection de la première. Pour cela il te faut prégénérer le contenu des
listes.
- Utiliser le "remote scripting" : technique IFRAME mais vieillissante,
objet JavaScript XMLHttpRequest ou bibliothèques comme AJAX. À la sélection
d'un élément dans la première liste, un script JavaScript se charge
d'appeler un script PHP qui lit les données depuis la BDD MySQL à charger
dans la seconde liste, une fois le script exécuté sa sortie est utilisée par
JavaScript pour mettre à jour la seconde liste.

Si tu planches un peu sur la seconde solution mais reste bloqué je peux
envisager de te développer rapidement un petit exemple utilisant un objet
XMLHttpRequest, j'ai aussi pas mal de références sur le sujet si tes
recherches ne te mènent nul part.

--
Jean-Marc.