> Tous les forumsForum des Webmasters

 Un tout petit peu de PHP
Statut du sujet : NON RESOLU Imprimer
 cervent
  Posté le 11/06/2007 @ 09:47  
 Astucienne


1182 Messages

Bonjour

D'abord un nouveau grand merci à elle et malcom qui m'ont gentillement aider lors de mes tentatives d'appications locale.

Là je vais sauter le pas et me lancer sur le "vrai" web, si possible "W3C//DTD XHTML 1.0 Transitional" compatible.

d'ou une question en rapport avec les feuilles de style et avec le moins de javascript possible.

Je code mes pages avec une déclaration :

<link rel="stylesheet" href="../css/text-defaut.css" type="text/css" title="corps_7">


<link rel="alternate stylesheet" type="text/css" href="../css/text-defaut.css" title="corps_7">
<link rel="alternate stylesheet" type="text/css" href="../css/text-M.css" title="corps_8">
<link rel="alternate stylesheet" type="text/css" href="../css/text-L.css" title="corps_9">
<link rel="alternate stylesheet" type="text/css" href="../css/text-XL.css" title="corps_10">

et un petit script qui va servir à modfier la police affichée

pas de problème pour changer dans une page

ce que je voudrais c'est conserver ce choix pour les pages suivantes, sans passer par un cookie.

mon idée : un peu de php (les cookies je ne veux pas, mais php je ne demande qu'à m'y mettre avec un peu d'aide)

l'idée :

- la page courante est (comme toutes autres) en php

- lorsque je fais le choix je donne une valeur à une variable disons visu

- dans la page tous les liens du site sont en "pageXYZ.php&visu?"

question comment :

- écrire le lien pour récupérer et envoyer la valeur de visu

- quoi dans l'entête de la page suivante pour lire cette valeur et écrire

<link rel="stylesheet" href="../css/nom_correspondant_valeur_visu" type="correspondant_valeur_visu">

merci d'avance

Cervent

 Afficher le profil de cervent Envoyer un message privé à cervent
 
 
Publicité
 papyboingtown  Posté le 11/06/2007 à 10:09  
Petit astucien

348 Messages

salut

Pour faire ça il faut que tu définisse ta variable visu par défaut tout au début de chaque page :

extract ($_GET); //Pour récuperer $visu
if (!isset($visu) or $visu=='') //Si $visu n'est pas définie, par exemple pour un nouveau visiteur
{
$visu = 'defaut'; //Defaut est le nom de la page css par défaut.
}
?>

<!--
début du bodyLà il faut laisser au naviguant la possibilité de changé de stile avec une liste déroulante
par exemple-->

<form action="#" method="get">
<select name="visu">
<option value="defaut.css> Défaut </option>
<option value="poisson.css> bubble </option>
<option value="beton.css> urbain </option>
</select>
<input type="submit" value="valider">
</form>

<!--pour les urls-->
<a href="page.php?visu=<?php echo $visu ?>">Lien1 </a>



Voilà c'est à peu près ça... à peu près; j'ai jamais essayé.



Modifié par papyboingtown le 11/06/2007 10:16
Afficher le profil de papyboingtownEnvoyer un message privé à papyboingtown
  Revenir en haut de la page
 Malcolm  Posté le 11/06/2007 à 10:12  
  Astucien


7264 Messages

Une méthode plus propre serait d'utiliser les Sessions PHP

tu pourrais ainsi te passer de cette URL exotique.

quoiqu'il en soit, si tu fais ton "visu" : "pageXYZ.php&visu?"

il faudrait plutôt écrire "pageXYZ.php?visu=valeurXXX"

et dans pageXYZ.php, mettre :

<?php

$visu = (isset($_GET['visu'])) ? $_GET['visu'] : 'valeurYYY_par_defaut'; // sachant que cela peut être une chaine vide : ''

// je te conseille aussi de vérifier ton "visu" :

$array_visus = array('valeurXXX', 'valeur AAA', 'valeurBBB', 'valeurYYY_par_defaut'); // toutes les valeurs que visu peut prendre

if (!in_array($visu, $array_visus)) { $visu = 'valeurYYY_par_defaut'; }

?>

et ensuite ton traitement ... Et quand tu le souhaites :

<link href=<?php echo $visu; ?>.css" media="all" />

PS : qu'appelles-tu "vrai" web ? Parce que tu peux très bien écrire une page HTML 4.01 strict tout aussi sémantique et fonctionnelle qu'une XHTML 1.0 Strict...

Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 cervent  Posté le 11/06/2007 à 11:05  
Astucienne


1182 Messages

Bonjour Malcolm et papyboingtown

c'est pas que je soit capable de voir quelle est la meilleure méthode

mais disons que je vais partir de la seconde.

je pense que j'avais oublié quelque chose en route et de dire que le choix de la feuille dans la page courante se fait avec un script (en js externe)


var sz=7 //default stylesheet
function selectStyleSheet(dir) {
var li; // link items - that is, stylesheets
if (6<sz+dir&&sz+dir<11){
for(var i=0; li=document.getElementsByTagName("link")[i]; i++) {
// viser stylesheets
if(li.getAttribute("rel").indexOf("style") != -1 && li.getAttribute("title")) {
if(li.getAttribute("title").indexOf("corps") !=-1) li.disabled = true;
if (li.getAttribute("title").indexOf(sz+dir)>-1)li.disabled = false;
}
}
sz=sz+dir;
}
}

et dans la page

skins <a href="javascript:selectStyleSheet(-1);;">[ - ]</a> - <a href="javascript:selectStyleSheet(1);;">[ + ]</a>

modifié : javais collé du code excutable dans cette page ??

Ca simplifie tout mais il doit donc falloir (?) que je passe sz à visu (?)

ça doit avoir un rapport avec $array_visus ?

là j'ai honte parce que ça doit être le b-a-ba de PHP

cervent

PS quand je disais "vrai" web ce n'était pas la bonne formule. Je voulais dire je passse du "local" au "en ligne" ce qui est le seul web (vrai ou faux)

PS2 plus j'y refléchi plus je me dis que ce que j'avais oublié ça conditionne le choix entre la méthode 1 et 2 - Excusez moi.



Modifié par cervent le 11/06/2007 11:32
Afficher le profil de cervent Voir la configuration de cerventEnvoyer un message privé à cervent
 Revenir en haut de la page
 cervent  Posté le 11/06/2007 à 12:00  
Astucienne


1182 Messages

... j'ai bien regardé tout ce que vous m'expliquez

si j'arrive à passe gz à visu

est ce que je pourrais faire

les liens :

Lien1

et en tête de page (aprés avoir renommé les divers .css : csstype7.css, csstype8.css ... )

et en gros, (mais m'assassinez pas svp), ce qu'il faudrait c'est passer la valeur d'une variable javascript à une valeur PHP.

mais il faudrait aussi pouvoir afficher un style par défaut, lorsque visu n'est pas défini, avec un if ( !isset($visu) or $visu=='') ..??


cervent



Modifié par cervent le 11/06/2007 12:07
Afficher le profil de cervent Voir la configuration de cerventEnvoyer un message privé à cervent
 Revenir en haut de la page
 Malcolm  Posté le 11/06/2007 à 17:17  
  Astucien


7264 Messages
euh ta méthode via JS est sans doute belle, mais quand tu n'as pas le javascript, tu n'accèdes donc pas à ton style Switcher ...
Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 cervent  Posté le 23/06/2007 à 14:30  
Astucienne


1182 Messages

... hello malcom

tu as raison sur le principe et je suis tout à fait d'accord

en pratique c'est pour un blog où je vais afficher des tas de contenu multimédia

ma préoccupation c'est plutôt de permettre un accés pour (presque) tous les navigateurs sachant que javascript il le faudra forcément pour certains "player"

ceci dit j'ai fait des essais php -on line, un peu laborieux car je n'ai pas encore osé installé WAMP -

j'arrive à afficher des "hello world" et un peu à manipuler des variables/conditions à condition de rester dans php.

en revanche pas possible de trouver le joint entre js et php. (pourquoi utiliser les deux ? - re: je souhaite que le visiteur puisse modifier l'apparence en restant chez lui sans faire un aller retour sur le serveur (ça c'est js) mais aussi de pouvoir conserver le choix par la suite (ça c'est php)

mais bon je ne souhaite pas t' (vous) embetter trop avec ça tant que je n'en sais pas plus

à moins que (pour me mâcher le travail) :

- dans la page courante je donne une valeur à gz par js (sur le a href="javascript:selectStyleSheet )

- il faut transmettre cette valeur à une variable php GGZZ (???) (à moins que ce soit toujours une variable js mais qui puisse être interprétée par php ... hum là je sens que je patauge !)

- la transporter dans l'url (ça j'ai compris maintenant)

- lire GGZZ dans la page(2) pour initialiser le style courant (ça je pense que j'y arriverai)

A+

Cervent

Afficher le profil de cervent Voir la configuration de cerventEnvoyer un message privé à cervent
 Revenir en haut de la page
 cervent  Posté le 28/06/2007 à 14:21  
Astucienne


1182 Messages

Bonjour

UP !

j'ai avancé un peu

dans la page courante j'ai vérifié que quand on change le style on peut lire la valeur courante de gz

l'intruction javascript:window.alert(gz) donne la bonne valeur.

mais je ne réussi toujours pas à passer la valeur courante de la variable dans l'url pageXYZ.php?visu=valeurgz

pageXYZ.php?visu=gz envoie : la chaine gz

d'une manière générale

pageXYZ.php?visu=n_importe_quoi envoie : la chaine n_importe_quoi

j'ai essayé avec des ==, des $ etc (mais peut-être pas tous)
j'ai essayé de mettre le pageXYZ.php?visu=valeurgz dans un document.write (mais il prend la valeur initial de gz pas la valeur courante)

help

cervent

Afficher le profil de cervent Voir la configuration de cerventEnvoyer un message privé à cervent
 Revenir en haut de la page
 cervent  Posté le 28/06/2007 à 18:44  
Astucienne


1182 Messages

... bon j'ai réussi à la passer par css

je quadruple les liens dans la page de départ avec un display "inline" ou "none" selon le style courant et je lis avec php dans la page de réception

ça marche impécablement.

bon ! moi je trouve ça un peu bourin et je ne sais pas si c'est trop élégant ou pas ??

d'autre part, parce que ça peut re-servir ailleurs, j'aurais bien aimer la passer en codant avec js un lien : pageXYZ.php?quelquechose_avec_gz_mais_quoi_\?_bon_sang_screugneugneu (peut-être dans un <form avec un champ caché !?)

tout en vous remerciant encore pour votre aide

je laisse le sujet encore un peu ouvert pour le cas ou il y aurait des amateurs (qui auraient envie de voir des photos de jessica tiens bien sûr!)

cervent

Afficher le profil de cervent Voir la configuration de cerventEnvoyer un message privé à cervent
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page