[Php mysql Javascript] Listes déroulantes

Fermé
johandev Messages postés 9 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 8 janvier 2007 - 21 déc. 2006 à 16:04
 Burnyfighter - 22 déc. 2006 à 00:18
Bonjour,
Je developpe depuis peu, et je désire mettre en place un systeme de listes déroulantes.
Voila mes tables :
Logiciel(N_Logiciel, Nom_Logiciel)
Licence(N_Licence, #N_Logiciel)
J'ai donc créé 2 listes déroulantes assez simple.

Voici tout le code :

<form method="post" name="fvn" action="test2menuderoulants.php">
<br>
Logiciels
<select type="checkbox" name="Logiciels" size="1" id="logiciels" onChange="">
<option value="">Choisissez le logiciel</option>

<?php
mysql_connect("localhost","root","" );
mysql_select_db("Gestion_Parc" );
$requet = 'SELECT N_LOGICIEL, NOM_LOGICIEL FROM logiciels ORDER BY NOM_LOGICIEL'; // on classe par ordre aphabétique les logiciels

echo($requet);

if($resultat=mysql_query($requet))
{
while($ligne= mysql_fetch_row($resultat))
{
$N_LOGICIEL=$ligne[0];
$NOM_LOGICIEL=$ligne[1];
echo '<option value="' . $N_LOGICIEL . '">' . $NOM_LOGICIEL . '</option>';
}
}
else
{
echo "erreur de la requete";
}

echo ($_POST['Logiciels']);


?>

</select>
<input name="submit" type="submit" value="Envoyer"> <!-- peut être remplacer par un javascript onChange... -->
<br><br>
</form>
<br>
<form method="post" name="fvn" action="test2menuderoulants.php"><!--comme pour le premier menu déroulant, on peut recharger la page en appliquant le nouveau paramètre, c'est-à-dire le choix de la licence -->
<br>
Licences
<select name="Licence" size="1" id="Licence">
<option value="%" selected></option>

<?php

if(isset($_POST['Logiciels'])) // on vérifie qu'un logiciel à bien été sélectionné
{
$Nselect = $_POST['Logiciels'];

$requet = 'SELECT N_LICENCE, N_LOGICIEL FROM Licence WHERE N_LOGICIEL=' . $_POST['Logiciels'] . ' ORDER BY N_LICENCE'; // on choisit dans la table licence les licences dont le logiciel correspond à la variable POST, c'est-à-dire à celui qui avait été sélectionné dans le 1er menu déroulant et on les classe par ordre alphabétique
if($resultat=mysql_query($requet))
{
while($ligne= mysql_fetch_row($resultat))
{
$N_LICENCE=$ligne[0];
$N_LOGICIEL=$ligne[1];
echo '<option value="' . $N_LOGICIEL . '">' . $N_LICENCE . '</option>';
}
}
else
{
echo "erreur de la requete";
}
}

mysql_close();
?>
</select>
<input name="submit" type="submit" value="Envoyer">
</form>

Ce code marche, cependant, lorsque je selectionne un Logiciel il faut que je click sur le bouton "envoyer", jaimerai que sur la selection de l'élement, l'autre liste se charge. Je sais qu'il est possible de faire ça avec onChange en javascript, mais je n'ai pas réussi a le mettre en oeuvre.
De plus ensuite une fois la liste des licences rechargé, la liste déroulante des Logiciels ne se fige pas sur le logiciel précedement selectionné, mais retourne sur "Choisissez le logiciel".

Merci de me donner un coup de main!
je ne pense pas que ça soit tres compliqué, mais je débute !
A voir également:

1 réponse

Burnyfighter
22 déc. 2006 à 00:18
Salut,

Plutot que de remplacer ton bouton submit, tu as sur ta checkbox :
<select type="checkbox" name="Logiciels" size="1" id="logiciels" onChange="">

le parametre onchange qui est vide !

Tu mets dedans onChange="fnv.submit" et normalement ça marche !

@+
0