8797 sujets

Développement web côté serveur, CMS

Smiley bawling Malgrés plusieurs essais je n'ai toujour pas réussi.
Je vous donne le code puis je vous explique le probleme:

<form action="mod.php" method="post">
Niveau de la monture:<br />
<?
function choixParDefaut($choix) // Création de la fonction
{
$par_defaut = '';

    if (isset($niv_monture)) // Si il y a qqchose dans la BDD
    {
        if ($niv_monture == $choix) // Si le niveau de la monture est le meme que celui que l'on est en train de traiter
        {
            $par_defaut='selected="selected"'; // Alors on modifie la variable  et on lui met selected
        }
    }
return $par_defaut; // On ne retourne rien si ce n'était pas le niveau choisi
}
?>
<select name="niv_monture">
        <option value="3" <? echo choixParDefaut('3'); ?>>Non dit</option>
        <option value="0" <? echo choixParDefaut('0'); ?>>Niveau 0</option>
        <option value="1" <? echo choixParDefaut('1'); ?>>Niveau 1</option>
        <option value="2" <? echo choixParDefaut('2'); ?>>Niveau 2</option>
</select>
<form>

J'ai donc un menu déroulant qui envoi une valeur dans la BDD. Jusque là pas de problème Smiley biggrin
Mais comme il y a toujour un mais, je voudrait que lorsque l'on revienne sur cette page, la valeur par défault dans le menu soit celle contenu dans la BDD. Et la ca m***** Smiley bawling

Si vous pouviez m'aidez ca serait tres simpas.
Merci d'avance

PS: J'espere que je poste au bon endroit, on m'a recomander votre forum, c'est pourquoi j'y poste!!!
Modifié par Addax (27 May 2005 - 14:12)
Au passage, est-ce que tu pourrais modifier le titre de ton sujet (en éditant ton premier post) pour qu'il annonce mieux ton problème ? Parce que de toute évidence, tu n'as pas un problème de menu déroulant Smiley cligne

<edit />
Par exemple : faire d'une variable une valeur par défaut (ou je ne sais quoi).
Modifié par Stephan (23 May 2005 - 19:42)
Le problème est que si tu ne passes pas la valeur de niv_monture à ta fonction celle-ci ne peux pas la connaitre.

Ton problème se résoud par
choixParDefaut($choix,$niv_monture)


Mais ce n'est pas la solution, PhP affecte automatiquement toutes les valeurs d'un formulaire dans le tableau associatif $_POST, et son cousin $_GET pour celles passées par l'url.

$_POST et $_GET sont des "super globales", des variables globales automatiques. Comme toute variable globale elles sont utilisables dans tous les contextes d'utilisation et donc par ta fonction.

Donc en corrigeant
$niv_monture
par
$_POST['niv_monture']
le comportement de ta fonction devrait grandement s'améliorer.

JP
Modifié par jpv (23 May 2005 - 20:55)