[php]Problème avec un valeur par defaut

steph70 -  
 steph70 -
Bonjour,

j'ai créer un script qui me permet de changer la couleur de mon arrière plan en php et y ait ajouter une couleur par défaut avec "selected" mais à chaque fois je n'arrive pas sur la couleur par defaut défini.

Voyez vous ou ca cloche ?
<html>
<?php
$a=array("<body bgcolor=\"#FFCCFF\">","<body bgcolor=\"#CCFFFF\">","<body bgcolor=\"#99FF99\">","<body bgcolor=\"#E8E8E8\">");
?>
<form method="post">
<select name="couleur">
<option value="red">Couleur rose</option><br/>
<option value="blue">Couleur bleue</option><br/>
<option value="vert">Couleur verte</option><br/>
<option value="brun" 
selected="true">Couleur par defaut</option><br/>
</select>
<input type="submit" />
</form>
<?php
if ($_POST['couleur']=="red")
        {
	print ($a[0]);
	}
elseif ($_POST['couleur']=="vert")
	{
	print ($a[2]);
	}
elseif ($_POST['couleur']=="brun")
	{
	print ($a[3]);
	}
else
	{
	print ($a[1]);
	}
?>
</body>
</html>



Amicalement
Steph70
A voir également:

10 réponses

X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
C'est selected tout court et non selected="true". ;)
0
steph70
 
Re, et merci,

Je viens d'essayer mais ca ne fonctionne pas non plus.

Sniff !!!

Amicalement
Steph70
0
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
Ah ouai mais si ta default value c'est brun alors c'est:

if ($_POST['couleur']=="red")
{
print ($a[0]);
}
elseif ($_POST['couleur']=="vert")
{
print ($a[2]);
}
elseif ($_POST['couleur']=="blue")
{
print ($a[3]);
}
else
{
print ($a[1]);
}

EDIT: Ton array ne contient que 3 couleurs. C'est normal? Parce que dans ton autre code, tu disais que brun était sur la troisième position du array.. il est sur la 2ème (un array commence à 0 donc un array avec 3 entrées donnera [0],[1] et [2]. Pas de 3)
0
CIAnure Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   29
 
Mettre ceci juste devant le if :


echo '<pre>';
var_dump($_POST);
echo '</pre>';


Et après tu reteste ta page, tu valide le formulaire avec la couleur par défaut, nous indiqué le résultat du var_dump.
Merci, CIAnure.
0
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
c'est pas ça, il essaie d'afficher quelque chose à la position 3 alors qu'il y a pas de position 3. Il vient de là le problème. O_O
0
CIAnure Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   29 > X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention  
 
Soit c'est moi, soit c'est vous. Mais moi je vois 4 valeurs dans son tableau $a, donc l'indice maximun est bien le 3.
Pourquoi vous dites cela?
0
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24 > CIAnure Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
NIARK, mon firefox bug depuis ce matin. Laisse faire :P
Je vais relire et je redonne une réponse dans 2 minutes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steph70
 
Re et merci encore pour votre aide.

CIAnure à raison, il y a bien 4 valeurs dans mon tableau. La dernière est donc bien le 3.

De plus, si cela n'etait pas, ca ne fonctionnerait pas lorsque je clique sur "valeur par defaut" et ce n'est pas le cas

CIAnure voici le resultat de la commande demandée :

array(1) {
  ["couleur"]=>
  string(4) "brun"
}


Amicalement
Steph70
0
steph70
 
Je me demande si je me suis bien expliqué.

Lorsque j'arrive sur ma page, j'ai bien la liste déroulante postionnée sur la "valeur par defaut" mais mon arrière plan à pris une des autres couleurs.

Je dis car quand je suis revenu devant mon ordi ma question ne m'a pas semblé aussi net que je l'avais pensé au départ

Amicalement
Steph70
0
CIAnure Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   29
 
Alors Essaye de mettre des "echo" dans tes if pour voir dans lequel il rentre. Merci de nous dire quoi.

Exemple :
if ($_POST['couleur']=="red")
{
echo "couleur : red car ".$_POST['couleur']." choisi.";
print ($a[0]);
}
elseif ($_POST['couleur']=="vert")
{
echo "couleur : vert car ".$_POST['couleur']." choisi.";
print ($a[2]);
}
... à compléter.
0
CIAnure Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   29
 
Essaye de mettre des "echo" dans tes if pour voir dans lequel il rentre. Merci de nous dire quoi.

Exemple :
if ($_POST['couleur']=="red")
{
echo "couleur : red car ".$_POST['couleur']." choisi.";
print ($a[0]);
}
elseif ($_POST['couleur']=="vert")
{
echo "couleur : vert car ".$_POST['couleur']." choisi.";
print ($a[2]);
}
... à compléter.
0
steph70
 
Re hello,

J'ai donc bien suivi tes conseils.

Résultat :

Lors de l'ouverture, il me met en couleur "bleu" sans afficher quoi que ce soit (je ne suis pas rentré dans le if )

Après il me donne bien les couleurs et les print qui vont avec sans difficulté.

Mais je n'arrive pas a fixer une couleur par défaut à l'ouverture

Amicalement
Steph70
0
steph70
 
Ah ah !!!

J'ai peut être la solution. A priori la valeur par defaut est la dernière du tableau.

J'essais de modifier celle ci et vous tiens au courant

Amicalement
Stéph70
0
steph70
 
Je confirme.

La couleur utilisée dans le "else" est celle qui s'affiche par defaut à l'ouverture de la page.

Et en fait c'est normal

Merci a tous pour votre aide précieuse

Problème résolu

Amicalement
Steph70
0