[RESOLU] Choisir des couleurs depuis un formulaire

Fredy
Invité n'ayant pas de compte PHPfrance

08 mai 2008, 04:16

Bonjour,

J'aimerais coder un formulaire qui au cours de navigation au site, on garde la meme couleur, taille, font,.. j'ai un petit essai avec la couleur en utilisant les sessions, mais ca n'a pas l'aire de bien marcher:

Formulaire:
<html><body text="black"> 
<form method="post" action="verif.php"> 
<select name="couleurs">
<option value="red">Red</option>
<option value="green">Green</option>
<option value="yellow">Yellow</option>
<option value="purple">Purple</option>
</select>
<input type="submit" value="OK"> 
</form></body></html> 
Verif:
<?php 
session_start();
$_SESSION['couleurs'] = $_POST['couleurs']; 
    
echo '<font color="$couleurs">hello, vous avez choisis&nbsp;' 

.$couleurs;
?> 
<br>
Click <a href="verif1.php">ici</a>
Verif1:
<?php 
session_start(); 
session_unregister("couleurs"); 
session_unset(); 
session_destroy(); 

echo 'la couleur que vous avez selectionnee est detruite, veuillez choisir une autre';
?> 
<br>
Click <a href="verif2.php">ici</a>pour verifier le changement de la couleur
Verif2:
<?php 
echo 'Heuh la couleur reste la meme :(;
?> 
Malheureusement la couleur ne se change pas, est ce que j'ai oublie un truc quqlque part.

Merci
, d'apres ce que je vois c'est que

Invité
Invité n'ayant pas de compte PHPfrance

08 mai 2008, 13:04

ton $couleurs n' est pas affecté.

donc
$couleurs = $_POST['couleurs']; ou $_SESSION['couleurs']

:D

Invité
Invité n'ayant pas de compte PHPfrance

08 mai 2008, 18:26

la couleur est affectee, mais quand je detruit ma session ou bien l'utilisateur choisit une autre couleur, ca change pas, ca reste toujours la precedente couleur

ViPHP
ViPHP | 1996 Messages

08 mai 2008, 19:49

Essaye cela :
//aucun changement ici
<html><body text="black"> 
<form method="post" action="verif.php"> 
<select name="couleurs">
<option value="red">Red</option>
<option value="green">Green</option>
<option value="yellow">Yellow</option>
<option value="purple">Purple</option>
</select>
<input type="submit" value="OK"> 
</form></body></html> 
Verif:
<?php 
session_start();
$_SESSION['couleurs'] = $_POST['couleurs'];
$couleurs = $_SESSION['couleurs']; 
 //il y a avait une erreur de quote;
   
echo '<font color="'.$couleurs.'">hello, vous avez choisis&nbsp;'.$couleurs;
?> 
<br>
Click <a href="verif1.php">ici</a>
Verif1:
<?php 
session_start(); 
$_SESSION['couleurs'] = ""; 

echo 'la couleur que vous avez sélectionnée est détruite, veuillez choisir une autre';
?> 
<br>
Click <a href="verif2.php">ici</a>pour vérifier le changement de la couleur
Verif2:
<?php 
echo 'Heuh la couleur reste la meme :(;
?> 
En clair j'ai juste remplacé la variable session sans détruire la session... et modifié font=""
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Fredy
Invité n'ayant pas de compte PHPfrance

08 mai 2008, 23:49

Ca marche bien et je veux la developpez sur la meme page avec php_self:
<?php
session_start(); 
?>
<html><body text="black"> 
<?
$_SESSION['couleurs'] = $_POST['couleurs']; 
$couleurs = $_SESSION['couleurs'];  

if (!isset($_POST['couleurs'])) {

?>
<Script language="JavaScript">
function goto(form) { var index=form.select.selectedIndex
if (form.select.options[index].value != "0") {
location=form.select.options[index].value;}}
//-->
</SCRIPT>
<form method="post" action="<?php echo $PHP_SELF;?>" name="form1">
<SELECT NAME="couleurs" ONCHANGE="goto(this.form)" SIZE="1">
<OPTION VALUE="">-------Choose a Selection-------
<OPTION VALUE="Red">Red
<OPTION VALUE="Yellow">Yellow
<OPTION VALUE="Green">Green
<OPTION VALUE="Purple">Purple
</SELECT>
</FORM>
<?
} 
else {
echo "<font color=\"$couleurs\">salut</font>";
}
?> 
</body>
</html>
ca donne aucun resultat parce que j'ai change <OPTION VALUE="index.htm">Home par la couleur que j'aimerais transmettre :(

Eléphant du PHP | 74 Messages

09 mai 2008, 01:27

Je pense que c'est ton javascript qui ne fonctionne pas. Essaye quelque chose comme ceci.
<?php 
session_start();  
?> 
<html><body text="black">  
<? 
$_SESSION['couleurs'] = $_POST['couleurs'];  
$couleurs = $_SESSION['couleurs'];   

if (!$couleurs) { 

?> 
 
<form method="post" action="<?php echo $PHP_SELF;?>" name="form1"> 
<SELECT NAME="couleurs" SIZE="1" onchange="this.form.submit();" > 
<OPTION VALUE="">-------Choose a Selection------- 
<OPTION VALUE="Red">Red 
<OPTION VALUE="Yellow">Yellow 
<OPTION VALUE="Green">Green 
<OPTION VALUE="Purple">Purple 
</SELECT> 
</FORM> 
<? 
}  
else { 
echo "<font color=\"$couleurs\">salut</font>"; 
} 
?>  

</form>
</body> 
</html>

Fredy
Invité n'ayant pas de compte PHPfrance

09 mai 2008, 03:40

Merci ca marche trop bien, RESOLU

Invité
Invité n'ayant pas de compte PHPfrance

11 mai 2008, 16:39

j'ai modifie et developpe le truc mais ca bug:
// connexion et selection de base de donnee

// selection des informations necessaires

// on extrait les donnees
while ($row1 = mysql_fetch_array($result1)) {  

// j'extrais les donnees ici

$_SESSION['couleur'] = $_POST['couleur']; 
$couleur = $_SESSION['couleur'];  

if ($couleur) {  

// on affiche les resultats
echo '<font size="5" color="$couleur">'.$phrase;
}
}
le resultat n'apparait pas, page blanche, je pense que j'ai mal place "if ($couleurs) { "[/php]

ViPHP
ViPHP | 1996 Messages

11 mai 2008, 22:11

Hmm Hmm c'est $_SERVER["PHP_SELF"] le mieux à écrire ....
De plus, a quoi te sert de faire ton affectation de variable dans ta boucle de sortir sql ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Invité
Invité n'ayant pas de compte PHPfrance

12 mai 2008, 07:18

Hmm Hmm c'est $_SERVER["PHP_SELF"] le mieux à écrire ....
De plus, a quoi te sert de faire ton affectation de variable dans ta boucle de sortir sql ?
Le probleme c'est que je sais pas ou placer ""if ($couleurs) { ", je l'ai place avant la requete sql et m'a donne une erreur de ELSE ...

Eléphant du PHP | 74 Messages

12 mai 2008, 13:08

Essaye d'afficher les erreurs ca peut être utile pour débugger. Si tu as accés au fichier php.ini
Il faut modifier la ligne:

display_errors = Off
en
display_errors = On

ou alors dans le .htaccess a la racine de ton site ajouter la ligne

php_flag display_errors on

Fredy
Invité n'ayant pas de compte PHPfrance

12 mai 2008, 15:23

Il n y a aucune erreur qui apparait, mais il n'affiche pas le contenu, est ce qu'il y a une autre methode a le faire?

ViPHP
ViPHP | 1996 Messages

12 mai 2008, 22:03


Le probleme c'est que je sais pas ou placer ""if ($couleurs) { ", je l'ai place avant la requete sql et m'a donne une erreur de ELSE ...
Dévelloppe un peu plus ton code visiblement tu as des accolades qui ne sont pas fermés ou trop d'ouvertes.. (au choix :lol: )

A quoi te sert ton
while ($row1 = mysql_fetch_array($result1)) {  


Montre nous au moins la requète...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Invité
Invité n'ayant pas de compte PHPfrance

13 mai 2008, 08:17


Le probleme c'est que je sais pas ou placer ""if ($couleurs) { ", je l'ai place avant la requete sql et m'a donne une erreur de ELSE ...
Dévelloppe un peu plus ton code visiblement tu as des accolades qui ne sont pas fermés ou trop d'ouvertes.. (au choix :lol: )

A quoi te sert ton
while ($row1 = mysql_fetch_array($result1)) {  


Montre nous au moins la requète...
Ce code sert a recupere un resultat et le mettre en tableau, dont je peux changer la couleur des resultats.

Eléphant du PHP | 74 Messages

13 mai 2008, 08:46

Comme la dit si justement Aureusms...si tu pouvais nous montrer un peu plus que les quelques lignes de ton code... Si tu as une page blanche soit il y a une erreur soit $phrase n'est pas défini ?

Faudrait détaillé l'utilité du while visiblement il ne sert a rien $row1 n'apparait nul part... et à quoi correspond $phrase ...