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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !