Surfoo Ça va ? ok. | Bonjour tout le monde, voilà j'ai réalisé un style switcher en passant la variable par l'URL, qui fonctionne nickel, mais j'ai voulu le changer en utilisant un cookie mais j'ai quelques petits problèmes... Quand je veux changer le style CSS par mon menu déroulant je suis obligé de le valider 2 fois...
je ne sais pas d'ou viens le problème, j'ai du faire une erreur quelque part mais je ne sais pas trop ou (j'ai jamais utilisé les cookies avant ce soir) Voilà le code : (si vous avez des améliorations à proposer n'hésitez pas surtout )
Avant l'entête :
Code :
- if (isset($css)) {
- setcookie('src3b14', $css, time()+(365*24*3600));
- }
- elseif (isset($_COOKIE['src3b14'])) {
- setcookie('src3b14', $_COOKIE['src3b14'], time()+(365*24*3600));
- }
- //sinon si le style css n'a pas été trouvé :
- //selectionne le style par défaut et mettre la valeur par défaut du CSS au cookie
- else {
- $req=mysql_query("SELECT css_id FROM work_css WHERE css_default=1 LIMIT 0,1", $cx) or die("Problème de CSS !<br />".mysql_error());
- $data=mysql_fetch_object($req);
- setcookie('src3b14', $data->css_id, time()+(365*24*3600));
- }
|
Affichage des liens des styles CSS :
Code :
- $req=mysql_query("SELECT css_id, css_titre, css_url FROM work_css ORDER BY css_default DESC", $cx) or die("Problème de CSS !<br />".mysql_error());
- while ($data=mysql_fetch_object($req)) {
- if ($_COOKIE['src3b14']==$data->css_id) {
- $rel="stylesheet";
- $css_affiche=$data->css_titre;
- }
- else
- $rel="alternate stylesheet";
- $css_titre=$data->css_titre;
- echo " <link rel=\"".$rel."\" type=\"text/css\" href=\"./css/".$data->css_url."\" media=\"screen\" title=\"".$css_titre."\" />\n";
- }
|
Le formulaire :
Code :
- $fichier=basename($_SERVER["PHP_SELF"]);
- echo " <form action=\"".$fichier."\" method=\"post\" id=\"themes\">\n <p>\n";
- if (isset($matiere))
- echo "<input type=\"hidden\" name=\"matiere\" value=\"".$matiere."\" />\n";
- $req=mysql_query("SELECT css_id, css_titre FROM work_css ORDER BY css_id", $cx) or die("Problème de requête<br />".mysql_error());
- $id=$data->css_id;
- echo " <select name=\"css\" id=\"css\">\n";
- while ($data=mysql_fetch_object($req)) {
- echo " <option value=\"".$data->css_id."\"";
- if ($data->css_id==$_COOKIE['src3b14'])
- echo " selected=\"selected\"";
- echo ">".$data->css_titre."</option>\n";
- }
- echo " </select>\n";
- // Libération des résultats
- mysql_free_result($req);
- echo " <input type=\"submit\" value=\"Ok\" accesskey=\"o\" />
- </p>
- </form>
|
Merci. Message édité par Surfoo le 25-10-2004 à 02:59:10
|