Propblème de compréhension de script php

Fermé
anthony - 15 mars 2009 à 12:00
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 - 15 mars 2009 à 13:11
Bonjour,
pouvez vous m'expliquer ce code je comprend pas pourquoi il dise 'selected="selected"' viola le code
<code><?php
function choixParDefaut($couleur) // Création de la fonction
{
$par_defaut = ''; // On crée une variable (vide par défaut) que l'on retournera à la fin

if (isset($_POST['couleur'])) // Si le visiteur a choisi une couleur
{
if ($_POST['couleur'] == $couleur) // Si cette couleur correspond à la couleur que l'on est en train de traiter
{
$par_defaut='selected="selected"'; // Alors on modifie la variable que l'on retournera et on lui met selected
}
}

return $par_defaut; // On ne retourne rien si ce n'était pas la couleur choisie, selected si c'était la bonne couleur
}


// -------------- Fin de la fonction ---------------


if (isset($_POST['couleur'])) // On vérifie si le visiteur a déjà choisi une couleur
{
echo '<p>Votre couleur préférée est le : ' . htmlspecialchars($_POST['couleur']) . '</p>';
}
?>


<p>Quelle est votre couleur préférée ?</p>

<form method="post">
<p>
<select name="couleur">
<option value="Bleu" <?php echo choixParDefaut('Bleu'); ?>>Le Bleu</option>
<option value="Marron" <?php echo choixParDefaut('Marron'); ?>>Le Marron</option>
<option value="Vert" <?php echo choixParDefaut('Vert'); ?>>Le Vert</option>
<option value="Rose" <?php echo choixParDefaut('Rose'); ?>>Le Rose</option>
</select>
<input type="submit" value="OK" />
</p>
</form>
</code
A voir également:

3 réponses

atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
15 mars 2009 à 12:09
$par_defaut='selected="selected"';

permet definir l'option ki sera affichée (selectionnée) kand dans ta liste deroulante sera chargée..
la fonction choixParDefaut ki a été faite, permet d'éviter de faire du code repetitif pour chaq option de la liste deroulante...

je sais pas si ça repond à ta kestion...
0
non sa répond pas vraiment a ma question en faite ce que je comprend pas c'est que dans la liste d'éroulante il n'ya pas de valeur par default il ont pas mit selected dans la liste donc pourquoi il mette ce $par_defaut='selected="selected"';
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
15 mars 2009 à 12:58
<option value="Bleu" <?php echo choixParDefaut('Bleu'); ?>>Le Bleu</option>

echo choixParDefaut('Bleu'); permet de comparer la couleur l'option en cours avec la couleur reçue par le $_POST; ce ki fait koi, par defaut tu n'a rien kom valeur de retour de la fonction d'où ceci $par_defaut = ''; comme initialisation..
par contre si la couleur reçu correspond celle de l'option en cours, ta fonction renvoie donc $par_defaut='selected="selected"'; simplement pour dire ce ke sera la couleur affichée direct kand ta liste deroulante sera chargée... mais pas ke les otr n'existeront pas...

une option sera donc soit:
- <option value="Bleu" selected="">Le Bleu</option> (si c'est pas la couleur bleu ki est reçue)
- ou <option value="Bleu" selected="selected">Le Bleu</option> (sinon)

tout comme il aurait simplement pu faire dans la fonction choixParDefaut un truc du genre, si la couleur correspond renvoyer simplement "selected" et faire chak option kom ceci :

<option value="Bleu" selected="<?php echo choixParDefaut('Bleu'); ?>" >Le Bleu</option>
<option value="Marron" selected="<?php echo choixParDefaut('Marron'); ?>">Le Marron</option> .....

j'espere ke ça repond now....

0
ah oui la c'est beaucoup mieux expliquer c'est claire maintenant merci de ton aide
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
15 mars 2009 à 13:11
aahhh.... ça me satisfait...

Heureux d'avoir pu t'aider
0

Discussions similaires