Tout d'abord bonjour et merci pour ce site que j'ai découvert il y a deux semaines. Je suis un complet débutant qui se psoe pas mal de questions que j'essaye au maximum de résoudre via divers moyens (dont vos articles/tutoriels).

Mais là je sèche, je suis certain d'avoir déjà rencontré ce que je vais vous décrire ci-dessous.

Il s'agirait d'avoir un cadre avec plusieurs onglets (le menu) où lorsqu'on sélectionne un onglet il affiche dans le cadre les infos qu'on désire qu'il affiche à ce moment-là.

J'aimerai savoir si il est possible de charger l'ensemble des infos en une fois et que le passage d'un onglet à l'autre ne demande donc aucune ressource. C'est à dire que tout soit contenu dans la même page.

La solution que j'ai trouvée pour le moment ferait appel à un iframe et je crée alors autant de pages que d'onglets. Cependant je crois avoir lu quelquepart (comme je vous l'ai dit je débute et donc j'ai quelques soucis de ce côté là) que les iframes sont vouées à la disparition et donc à oublier.

Est-ce possible? Est-ce que je me complique la vie?

Merci.


edit : au passage, je compte si possible me limiter au js en plus de html/css.
Modifié par Charles-E (21 Jul 2010 - 12:17)
Salut,

Charles-E a écrit :
Est-ce possible?
Oui.

Charles-E a écrit :
Est-ce que je me complique la vie?
Oui : quel est l'intérêt de tout charger en une fois ? il suffit que chaque onglet redirige (lien classique) vers une page reprenant toute la mise en forme et l'impression sera que seul le contenu a changé. Avec quelques include tu peux rendre ça plus performant encore.
Rebonjour,
merci pour la réponse rapide.

Petite question pratique au sujet de l'include, on nous dit "la fonction include() injecte réellement la totalité du fichier". Cela veut-il dire qu'il recharge tout?

L'intérêt pour moi de tout charger en une fois est/était de ne pas à recharger la page pour passer d'un onglet à l'autre (les onglets donnent accès à la liste des derniers articles publiés dans les catégories correspondante, ie 3 + l'onglet général). Recharger tout une page pour visualiser peu d'infos supplémentaires me semblait lourd et inutile.

Donc si include ne recharge au final que ce qui change alors ça serait la solution idéale ^^

Cordialement, CE.
Charles-E a écrit :
Petite question pratique au sujet de l'include, on nous dit "la fonction include() injecte réellement la totalité du fichier". Cela veut-il dire qu'il recharge tout?
Ça veut dire qu'il fait une sorte de copié/collé du document à inclure.

Charles-E a écrit :
L'intérêt pour moi de tout charger en une fois est/était de ne pas à recharger la page pour passer d'un onglet à l'autre (les onglets donnent accès à la liste des derniers articles publiés dans les catégories correspondante, ie 3 + l'onglet général). Recharger tout une page pour visualiser peu d'infos supplémentaires me semblait lourd et inutile.
Suivant les cas tu peux effectivement tout charger en une seule fois et utiliser JavaScript (par exemple jQuery Tabs) pour la présentation sous forme d'onglets. A voir si le résultat en vaut la peine (notamment en terme d'ergonomie).

Charles-E a écrit :
Donc si include ne recharge au final que ce qui change alors ça serait la solution idéale ^^
Relire l'article plus lentement. Smiley cligne
Ok ^^

Je vais regarder ça de plus près en espérant trouver mon bonheur, de toute façon ça ne pourra que me servir pour la suite Smiley smile

Merci bien.
Bonjour et désolé du double post, mais je ne sais pas si un simple edit indique si il y a du nouveau dans le topic.

Donc les include c'est génial et ça marche très bien, le soucis c'est que je me suis fait renvoyé dans les cordes car le site doit être fait sans php Smiley biggol . Pourquoi? Aucune idée.

Je vais spécifier un peu le cadre du problème, je suis en stage et il s'agit de refaire la tête d'un intranet et en fait on nage en plein âge de pierre de l'internet, à savoir que actuellement le site est un amas de tableaux dans des tableaux dans des tableaux, etc. Ce qui ne les dérange pas.

En gros le message qu'on m'a fait passer est le suivant :
-la beauté du code : on s'en fou
-la facilité de maintenance : on s'en fou, le site n'est pas censé changer pour des années Smiley sweatdrop
Bref ils veulent juste que ça ait le look qu'ils veulent et les ressources que ça demande sont du côté annexe.

Un des changements donc était de fusionner plusieurs tableaux de news en un seul tableau à onglet plus large donc plus lisible. Et au passage de récupérer de la place à droite pour y caler des trucs. Ce que j'avais envisagé comme un menu avec des pages que j'allais intégrer par iframe.

Donc je repars sur un iframe et puis zut? Smiley rolleyes Si oui, est-il possible de virer le bord moche que fait un iframe dans la page principale (le truc immonde qui ressemble à un trou creusé pour mettre la deuxième page dans la première).

Sinon j'avais fait une jolie mise en page par des divs et je compte bien m'y cantonner. Mon but restant avant tout de progresser de manière utile au niveau html.

Merci de votre patience Smiley lol
Modifié par Charles-E (21 Jul 2010 - 12:35)
si tu peux faire du jquery , tu dois pouvoir faire ca sans php Smiley smile

En gros tu envoie tout le code , et pendant que ca charge , tu va planqué certains éléments grâce a jquery , puis tu va les faire apparaitre quand tu cliquera sur un des onglets Smiley smile ( tu en fera apparaitre un et t'enlevera le vieux par exemple )

Ici , http://www.alsacreations.com/astuce/lire/916-librairie-javascript-jquery-script.html ,tu trouveras un petit début sur le jquery , notamment l'exemple a la fin ( c'est assez facile ) : http://www.alsacreations.com/xmedia/tuto/exemples/jquery/intro/
C'est bien commenté et très simple , du coup c'est facile à comprendre puis à adapter .
Bonjour !
Et on commence par un EDIT !
je n'avais pas vu ton précédent post (...) et par conséquent tout le code qui suit est en PHP...Donc tu peux à ta guise ignorer la suite du message ou pratiquer PHP quand même.
Toujours est-il, le post pourra toujours servir à d'autres dans le besoin, tout comme toi.

a écrit :
Je suis un complet débutant.

Donc je vais bien t'expliquer le principe, te donner un code (complet mais perfectible) et sans plus attendre, les réponses à tes questions !

a écrit :
Il s'agirait d'avoir un cadre avec plusieurs onglets (le menu) où lorsqu'on sélectionne un onglet il affiche dans le cadre les infos qu'on désire qu'il affiche à ce moment-là.

Exaucé !
Création d'un menu intégralement en HTML/CSS sur Alsacréation :
http://www.alsacreations.com/tuto/lire/574-Creer-des-menus-simples-en-CSS.html

une fois ton menu crée, tu l'appel dans ta page comme ceci :

<ul id="menu">
  <li><a href="index.php?page=main">Accueil</a></li>
  <li><a href="index.php?page=join">Nous Rejoindre</a></li>
  <li><a href="index.php?page=stats">Stats Serveur</a></li>
<-- Etc... -->
</ul>


et d'autre part, dans ta page, tu vas créer un cadre (le "corps principal de la page") et coller ceci dedans :

	<?php
// on teste la présence de la variable "page". Si elle n'y est pas, on renvoi à une page "par défaut" (main dans mon cas).
		if(empty($_GET['page']))
		{
			include("php/main.php");
		}
//Si elle existe cette variable, on regarde son contenu, et on va tester si le fichier auquel elle renvoi existe AUSSI. (afin d'éviter les failles de sécurité via injection XSS). Et on inclut si le fichier existe.
		elseif(file_exists("php/" . $_GET['page'] . ".php"))
		{
			include("php/" . $_GET['page'] . ".php");
		}
//Sinon (si on ne trouve pas le fichier, probabilité d'une injection XSS) on inclut quand même la page par défaut...
		else
		{
			include("php/main.php");
		}
	?>

Quand au contenu de tes pages, tu devras les placer TOUT SEULS, (sans doctype ou style, ou autre), dans des fichiers .php situés dans un répertoire "PHP" à la racine de ton serveur web. Ou changer le répertoire par défaut dans le code précédent par celui que tu as mis à la place.

a écrit :
J'aimerai savoir si il est possible de charger l'ensemble des infos en une fois et que le passage d'un onglet à l'autre ne demande donc aucune ressource. C'est à dire que tout soit contenu dans la même page.

Oui, mais si tu es vraiment débutant, ces technologies ne te sont pas franchement accessibles, et ne présentent qu'un interêt très restreint, pour ne pas dire nul.

Voilà ! Ton problème doit être résolu, tu vas pouvoir complètement oublier ces saletés d'iframes obsolètes et non-conformes, et passer à autre chose, de mieux. Rappel-toi toujours : les iframes ça parait cool quand on commence HTML, mais c'est GRAVE le mal, en fait.

je reste à disposition pour des infos, des explications etc...
Et surtout N'OUBLIE PAS DE CHANGER L'EXTENSION .html par .php !

Bonne journée !
Modifié par Wu Xiang (25 Jul 2010 - 09:01)
Bonjour, désolé de ne pas avoir répondu plus tôt, mais j'étais malade à en crever ces derniers jours.

Merci à vous même si côté php je ne pourrai pas l'utiliser, au mois j'en prends note et je regarde comment ça marche pour plus tard, ça ne pourra que me servir.
Et puis plus j'avance dans le site, plus je me rends compte que les limitations archaïques qu'ils imposent (ie6, html/css principalement) n'aident pas non plus. Surtout qu'ie6 et les standards du w3c n'étaient aps les meilleurs amis du monde. Smiley lol

Je crois que je vais commencer par un truc pas très opti et les laisser décider de ce qui leur va et ne va pas.

Cordialement, CE.