Page 1 sur 3
Choisir des couleurs depuis un formulaire
Posté : 08 mai 2008, 04:16
par Fredy
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 '
.$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
Posté : 08 mai 2008, 13:04
par Invité
ton $couleurs n' est pas affecté.
donc
$couleurs = $_POST['couleurs']; ou $_SESSION['couleurs']

Posté : 08 mai 2008, 18:26
par Invité
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
Re: Choisir des couleurs depuis un formulaire
Posté : 08 mai 2008, 19:49
par Aureusms
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 '.$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=""
Posté : 08 mai 2008, 23:49
par Fredy
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

Posté : 09 mai 2008, 01:27
par b.jerome
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>
Posté : 09 mai 2008, 03:40
par Fredy
Merci ca marche trop bien, RESOLU
Posté : 11 mai 2008, 16:39
par Invité
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]
Posté : 11 mai 2008, 22:11
par Aureusms
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 ?
Posté : 12 mai 2008, 07:18
par Invité
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 ...
Posté : 12 mai 2008, 13:08
par b.jerome
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
Posté : 12 mai 2008, 15:23
par Fredy
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?
Posté : 12 mai 2008, 22:03
par Aureusms
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

)
A quoi te sert ton
while ($row1 = mysql_fetch_array($result1)) {
Montre nous au moins la requète...
Posté : 13 mai 2008, 08:17
par Invité
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

)
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.
Posté : 13 mai 2008, 08:46
par b.jerome
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 ...