28173 sujets

CSS et mise en forme, CSS3

Bonjour,

Je suis débutant en HTML, CSS et autres langages "Web".
Je dois développer des pages web, et j'aimerais qu'elles soient le plus "propres" possible. J'ai donc lu pas mal de tutoriels, et décidé d'utiliser les CSS, de séparer la mise en forme du contenu, et d'utiliser des templates PHP.
J'ai un exemple de ce que je dois réaliser dans lequel des frames sont utilisées pour diviser la page en trois parties: en-tête, menu (à gauche), et partie "utile" à droite. Je souhaite supprimer les frames, et "passer" aux CSS. J'ai bien vu un tuto sur le sujet, mais la question que je me pose est la suivante :
Doit-on répeter le menu et l'en-tête sur chaque page PHP ?
Dans l'exemple que l'on m'a donné, en cliquant sur un menu (javascript) à gauche, on ouvre dans le cadre de droite une page PHP.
Comment faire la même chose en supprimant les cadres ?

Je n'ai trouvé la réponse dans aucune des tutoriels que j'ai lus ...

Merci,

Alain
Parce que à ce que je sache, il n'y en a pas.
On a les frames et les iframes...
A part ça, mis à part le fait que tu veux écrire du PHP ( pour un débutant en langages Web c'est étonnant ), il est tout aussi rapide maintenant de mettre le menu sur toutes les pages et de recharger la page complète, à une vitesse de transmission de 1G à 18.
Salut

C'est possible en utilisant les include PHP. Cette fonction permet d'insérer dans la page en cours le code présent dans un autre fichier. Il y a un tutoriel à ce sujet sur Alsacreations.

Il y a 2 façons de voir les choses :
- soit les includes ne sont là que pour conserver des fichiers indépendants (et donc faciles à manipuler et mettre à jour) les différentes parties statiques du site (menu, header, footer), et dans ce cas il s'agit pratiquement de pages html classiques
- soit l'include concerne au contraire le contenu de la page, et on se lance là dans un domaine un peu plus pointu au niveau PHP Smiley ohwell
Modifié par Sopo (12 Jul 2006 - 16:48)
a écrit :
Il y a 2 façons de voir les choses :
- soit les includes ne sont là que pour conserver des fichiers indépendants (et donc faciles à manipuler et mettre à jour) les différentes parties statiques du site (menu, header, footer), et dans ce cas il s'agit pratiquement de pages html classiques
- soit l'include concerne au contraire le contenu de la page, et on se lance là dans un domaine un peu plus pointu au niveau PHP ohwell


Je crois que mon problème est là:
J'ai une "page" gauche qui est un menu sous forme d'arbre javascript, un en-tête qui contient des données qui changent sans arrêt (heure par exemple), et une page de droite qui contient des données qui elles aussi peuvent changer sans arrêt.
Jusqu'ici, en utilisant les cadres, tout fonctionnait:
Chaque "page" (gauche, droite et top) était générée dynamiquement en utilisant PHP + template.
Chaque "page" affichée dans la partie de droite est accessible en cliquant sur un lien dans le menu javascript de gauche. Donc, pour chaque page, j'ai un fichier PHP + un fichier de template.
Comment dans ce cas remplacer ces cadres par ce qu'il faut en CSS ?
Smiley ohwell
Le pire dans tout ça (si l'on veut), c'est que j'imagine que ce problème est ultra classique, mais je ne vois pas comment faire ...

Et en plus, j'ai un autre problème avec le menu en javascript: il utilise la notion de "target" pour indiquer dans quel cadre afficher le lien.
Si je me contente de "mettre" ce javascript dans ma page en PHP, lorsque je clique sur un lien, il l'ouvre dans une nouvelle page ...
Modifié par bat (12 Jul 2006 - 17:33)
Sopo a écrit :
C'est possible en utilisant les include PHP. Cette fonction permet d'insérer dans la page en cours le code présent dans un autre fichier. Il y a un tutoriel à ce sujet sur Alsacreations.

Merci pour ce lien, je n'avais pas lu ce tutoriel, j'étais tellement focalisé sur ce problème de menus que je ne pensais pas pouvoir résoudre mon problème de cette façon.
Reste à régler cependant mon problème de treeview en javascript.
J'ai bien peur d'être obligé de le réécrire pour modifier son comportement ...
Bonjour, je me permet de continuer la discussion parce que j'ai une question concernant tout ça.

J'ai lu le tutoriel, c'est pas mal comme méthode. Mais disons que l'on a un menu qui a des sous-menus, et qu'en fait, pour tous les sous-menu, il s'agit de la même page mais avec un paramètre dans l'url indiquant ce qu'on doit afficher de la page. Comment on fait dans ce cas là ??

Parce que si je fais ça :

<a href="#">Goodies</a>
	<ul>
		<li><a href="index.php?section=goodies&categorie=wallpaper">Wallpaper</a></li>
		<li><a href="index.php?section=goodies&categorie=avatar">Avatars</a></li>
		<li><a href="index.php?section=goodies&categorie=banniere">Bannières</a></li>
	</ul>


Dans le include, on peut pas dire : include('goodies.php?categorie=avatar');

Alors comment on peut procéder ?? include des fichiers php qui seraient en fait des fonctions d'affichage de la page et qui prendrait en paramètre la categorie ??

En fait, je voudrais juste une piste pour pas partir dans tous les sens !!

J'espère que j'ai été assez claire, merci pour vos réponses
Modifié par poopsinou (13 Jul 2006 - 14:30)
Salut !

Ca tourne au problème de PHP, il y a des forums plus spécialisés à ce niveau, mais je vais essayer de te donner une piste ...

Pour afficher des pages différentes en appellant uniquement la page index, il faut lui indiquer un paramètre dans l'url, paramètre qui est ensuite traité par le script PHP pour déterminer la page à afficher et aller la chercher. Dans ton exemple, ça veut dire qu'il devrait y avoir quelque part dans ta page index.php quelque chose de ce genre :
if (isset($_GET['section']) && isset($_GET['categorie'])):
// Test de l'existence des paramètres nécessaires
// ensuite, examen des différentes valeurs possibles de ces paramètres
// ça peut éventuellement provenir d'une base de données ...
    switch ($_GET['section']) :
        case "goodies" :
            // valeurs possibles de la variable 'catégorie'
            switch ($_GET['categories']) :
                case "wallpaper" : include("inc/wallpaper.php");
                break;
                case "avatar" : include("inc/avatar.php");
                break;
                case "banniere" : include("inc/bannière.php");
                break;
            endswitch;
        break;
    endswitch;
endif;
Ok, j'avais pensé à un truc comme ça, mais si je veux que ça soit une unique page ??
Je veux dire, que ce soit wallpaper, ou bannière ou avatar, ça soit la même page (goodies.php par exemple, car l'affichage est le même ... donc je vais pas faire trois pages identiques) .

Bon j'ai pas encore décider d'une chose comme ça, mais j'avais prévu ça, alors là comment je peux faire si c'est la même page ?