OnChange sur liste déroulante
Bonjour à tous,
je ne suis pas un pro en JavaScript donc je fais appel à votre savoir.
J'ai fait une fonction qui permet de lister dans un champs "liste" la totalité des éléments de ma table "catégories" de ma base de données.
je fais appel à cette fonction dans un formulaire. Le but étant de récupérer le choix de l'utilisateur. J'ai pour cela utiliser l'événement onChange="document.forms['Selectcategorie'].submit(); . Je l'ai déjà utilisé sur d'autres pages sans problème et je l'utilise sur la même page pour d'autres fonctions.
Le problème que je rencontre est que pour la fonction reprise ci-dessous, ma page ne se recharge pas uniquement avec cette fonction. Par contre, chose étrange si je fais appel (juste après) une seconde fois à cette fonction cela marche !
Je vous mets le code de ma fonction et son "appel" dans ma page ci-dessous:
Quelqu'un aurai-il une idée ?
la fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
function ChooseCategorie()
{
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" id="Selectcategorie">';
?>
<SELECT name="categorie" id="categorie" value="0" size="1" style="width:200px;" onChange="document.forms['Selectcategorie'].submit();">
<?php
echo '<OPTION>Sélectionnez une categorie</OPTION>';
$sql_categorie = mysql_query("SELECT * FROM t_categorie_cat ORDER BY cat_nom ASC") or die(mysql_error());
while ( $donnees_categorie = mysql_fetch_array($sql_categorie) )
{
echo '<OPTION value='.$donnees_categorie['cat_id'].'>'.$$donnees_categorie['cat_code'].' - '.ucfirst($donnees_categorie['cat_nom']).'</OPTION>';
}
echo '</SELECT><br />';
echo '</form>';
} |
l'appel dans ma page:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" class="new-client-form">
<fieldset><legend style="font-size:20px;">1 - Choix de la categorie </legend>
<!-- 1 La categorie -->
<table>
<tr>
<td>
<?php
ChooseCategorie();
var_dump($_POST['categorie']);
?>
</td>
</tr>
</table>
</fieldset>
</form> |
Je pense que cela doit-être une histoire de balise mal fermée mais je ne vois pas.
Merci pour votre aide !