Inclure une page php dans une page HTML

Résolu/Fermé
anatolekadel Messages postés 102 Date d'inscription jeudi 26 mai 2011 Statut Membre Dernière intervention 18 novembre 2011 - 24 oct. 2011 à 16:46
Rodolphe_ Messages postés 1498 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 décembre 2014 - 24 oct. 2011 à 18:34
Bonjour,
Voilà, j'ai une page principale qui se compose d'un ensemble d'onglets.
Chaque onglets contient une page en php. Je fais donc des includes pour chaque onglets.
Le hic, c'est qu'au chargement de ma page principale, le navigateur charge le contenu de tous les onglets. Cela ne m'arrange pas beaucoup car les onglets contiennent beaucoup de code; et cela prend du temps (enfin, tout est relatif, une seconde seulement en local, mais c'est déjà énorme, et je n'ai même pas envi d'essayer avec un serveur distant ^^).

Donc, j'ai cherché d'autres moyens d'inclure des pages dans une page. J'ai trouvé l'iFrame Loading (un simple script JavaScript qui me permet de charger chaque onglet à la fois (par exemple, si je veux aller sur l'onglet 'Ressource', je clique sur l'entête 'Ressource' et ma page ressource.php est chargée puis affichée.
Voilà la source: https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/245253-iframe-loading

Cela m'ennuie un peu pour plusieurs raisons:
1) Mes pages php (comme ressource.php) générait seulement des morceaux de page HTML et pas des pages entières, or, ça n'a pas trop l'air de marché à la perfection (j'ai pas pu vraiment testé mais bon, j'ai bien peur qu'il me faille faire des <html>,<head> et autre <body>, ce qui ne m'enchante guère.

2) Mon iFrame prend une taille fixe (si la page php affiche quelque chose de plus grand, il y a une barre de défilement). Je n'aime pas trop ça, car je ne connait pas la taille de chaque page, certaine peuvent être très longue et d'autres contiennent seulement une seule ligne.
3) Ca doit être du à autre chose, mais mon code html est lu comme du texte, j'ai des balises <p> qui s'affiche un peut partout, je crois que cela est du au fait que j'ai d'autres scripts JavaScript qui doivent être lu pour que ces <p> soit lu comme du code HTML, mais cela me renvoie à mon (1), j'ai pas envi de refaire une page HTML pour juste un petit script php...

Donc voilà ma question, existe-il un script JavaScript, PHP (ou autre, AJAX me parait être la solution dans ce cas là), pour que ma page principale se charge sans charger le contenu des onglets, et que sur le clique de l'entête d'un onglet, son contenu soit chargé (sachant qu'elle contiennent quasi systématiquement du code php) ?
PS: Il ne faut pas oublier que ces pages doivent être affichée dans une div ou autre à taille variable...

Merci de vos réponses ;)


A voir également:

7 réponses

Rodolphe_ Messages postés 1498 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 décembre 2014 285
Modifié par Rodolphe_ le 24/10/2011 à 17:02
Bonjour,

je ne comprends pas trop, pourquoi ne pas faire un système de liens classiques?

si tu ne veux pas que le contenu des autres onglets soit chargé et que tu ne veux pas avoir à rafraichir la page pour en avoir une autre, il n'y qu'ajax qui pour toi.

Et attention, une page comportant du php doit porter l'extension .php et non .html.
0
anatolekadel Messages postés 102 Date d'inscription jeudi 26 mai 2011 Statut Membre Dernière intervention 18 novembre 2011 3
24 oct. 2011 à 17:09
Voilà, je n'ai pas envi que la page se rafraîchisse.
Donc, effectivement, AJAX est ce qu'il me faut, mais il permet d'échanger du texte (ou du XML) et pas du code HTML+PHP, donc, existe-il autre chose que le système d'iFrame Loading mais qui fonctionne avec des bouts de pages au lieu de page entière.

Mon plus gros soucis, n'est pas de refaire des pages pour chaque onglet, mon problème est surtout que la zone où est affiché mon script php est de taille fixe et pas de taille variable
J'ai donc des barres de défilement qui ne rendent pas très bien à l'écran...
Donc, entre temps, j'avais pensé faire une variable widht par exemple qui se placera dans mon iFrame (par exemple: <iFrame name='Ressources' width='<?php echo $width ?>'></iFrame>

Le problème, c'est que je ne connais pas tout le temps la taille de mon iFrame, donc, parfois, j'aurais une boîte qui est trop grande (1000px pour afficher une seule ligne) et parfois j'aurais ces barres de défilement.
Existe-t-il une propriété CSS qui me permette de mettre la taille en 'auto' par exemple ?
0
Dsl mais GOOGLE est le meilleur Ami de l'homme donc essai de chercher a fond ne tiens pas compte de la primière page google!!vas sur la 20ème si il le faut n'abandonne pas!!!
0
Rodolphe_ Messages postés 1498 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 décembre 2014 285
24 oct. 2011 à 17:17
Attention à ne pas tout confondre. php est un langage coté serveur qui se "transforme" en html avant d'arriver chez le client.
Le client ne voit que du html et pas de php.

C'est au script php appelé par le moteur ajax de générer dynamiquement le code html destiné à e^tre affiché à l'écran.
Le reste n'est que mise en page avec du css.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anatolekadel Messages postés 102 Date d'inscription jeudi 26 mai 2011 Statut Membre Dernière intervention 18 novembre 2011 3
24 oct. 2011 à 17:53
Ca, je suis d'accord...
Le soucis, c'est qu'avec l'iFrame Loading, la taille de mon <iFrame> (là où se place le résultat de mon script PHP) n'a pas la taille du résultat. Exemple:
Si mon script PHP renvoie une liste , selon l'heure du serveur (drôle d'idée, mais c'est un exemple). Un coups, le script renvoie 14 résultats, un autre, elle en affiche 1024...
L'iFrame sera quoi qu'il arrive de 500px; donc, dans le premier cas, l'iFrame sera trop grand pour son contenu, dans le second, elle sera trop petit. Donc, comment palier à ce problème ?
0
anatolekadel Messages postés 102 Date d'inscription jeudi 26 mai 2011 Statut Membre Dernière intervention 18 novembre 2011 3
24 oct. 2011 à 18:31
Ma question est mal posée en fait, je crois que l'iFrame Loading ne soit pas ce qu'il me faut tout compte fait...
0
Rodolphe_ Messages postés 1498 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 décembre 2014 285
24 oct. 2011 à 18:34
oui, et un div prends une hauteur automatiquement en fonction de son contenu lorsque son positionnement est en absolut ou en relatif.
0