A voir également:
- Appeler des pages html et php avec ajax
- Appeler en privé - Guide
- Editeur html - Télécharger - HTML
- Supprimer des pages sur word - Guide
- Espace html - Astuces et Solutions
- Br html ✓ - Forum Webmastering
1 réponse
Salut, ni ajax ni javascript ne permettent de charger une page dans une autre.
Ils permettent par contre de gérer des flux d'informations(données, variables...) pour les rendre disponible et les afficher dans une page(ou autre comme s'en servir pour un but définit).
Une page web n'est pas fait pour charger une autre mais il existe des astuces:
Autrefois les frame qui sont l'union de plusieurs pages en une seule(qui n'a jamais été performant comme technologie ou moyen de présenter les pages et implique de nombreux problèmes).
De nos jours les iframe qui ne résolvent as tout les problèmes que posaient les frame(donc n'est pas recommandé non plus) et permettent effectivement d'inclure une page dans une autre.
Javascript (comme A.J.A.X. dont javascript est un de composants de la technologie(c'est le "J" de l'acronyme)) ne sont pas la technologie généralement employé pour inclure un contenu qui peux varier dans une page.
Pour cela on parle de sites dynamiques: c'est à dire une base de données et un programme en langage serveur qui va réécrire la page web avec un contenu qui sera fournit par la base de données. Les technologies fréquents sont mySQL(et son langage SQL pour la base) et PHP.
AJAX lui sert à faire un pont avec les technologies serveur en utilisant des méta-données qui mettent des informations/données à disposition du programme pour: éviter des requêtes multiples au serveur, réduire les temps de fonctions et d'interactivité, rendre possible côté utilisateur ce qui ne l'était pas avant sans faire une requête à la base par le programme serveur...
Donc dans votre cas ce n'est ni AJAX ni javascript qui est adapté.
Par contre vous pouvez très bien lire le fichier HTML pour le transformer en données, ces données peuvent ensuite être affichées où on le désire dans la page par le DOM de javascript.
Dans ce cas il existe des formats plus pratiques et convenables (json, XML qui peuvent être sont aussi des composants d'AJAX , voir le "X" de l'acronyme) mais ce n'est pas non plus la bonne méthode et corresponds à des besoins et buts très spécifiques.
La bonne méthode pour ce que vous voulez faire est celle évoquée précédemment: la base de données et le programme qui fait interface(ou liaison) entre la page web (client, chargée, interprétée et affichée dans le navigateur) et la B.D.D.
En tout cas charger un fichier de texte HTML sans le considérer comme une donnée/variable de ce qu'il contient est impossible par le moyen que vous avez fait. On peut par contre indiquer des urls et utiliser les iframes, c'est une solution médiocre mais qui correspond plus à votre raisonnement, qui je le rappelle n'est pas la bonne façon de faire.
Ils permettent par contre de gérer des flux d'informations(données, variables...) pour les rendre disponible et les afficher dans une page(ou autre comme s'en servir pour un but définit).
Une page web n'est pas fait pour charger une autre mais il existe des astuces:
Autrefois les frame qui sont l'union de plusieurs pages en une seule(qui n'a jamais été performant comme technologie ou moyen de présenter les pages et implique de nombreux problèmes).
De nos jours les iframe qui ne résolvent as tout les problèmes que posaient les frame(donc n'est pas recommandé non plus) et permettent effectivement d'inclure une page dans une autre.
Javascript (comme A.J.A.X. dont javascript est un de composants de la technologie(c'est le "J" de l'acronyme)) ne sont pas la technologie généralement employé pour inclure un contenu qui peux varier dans une page.
Pour cela on parle de sites dynamiques: c'est à dire une base de données et un programme en langage serveur qui va réécrire la page web avec un contenu qui sera fournit par la base de données. Les technologies fréquents sont mySQL(et son langage SQL pour la base) et PHP.
AJAX lui sert à faire un pont avec les technologies serveur en utilisant des méta-données qui mettent des informations/données à disposition du programme pour: éviter des requêtes multiples au serveur, réduire les temps de fonctions et d'interactivité, rendre possible côté utilisateur ce qui ne l'était pas avant sans faire une requête à la base par le programme serveur...
Donc dans votre cas ce n'est ni AJAX ni javascript qui est adapté.
Par contre vous pouvez très bien lire le fichier HTML pour le transformer en données, ces données peuvent ensuite être affichées où on le désire dans la page par le DOM de javascript.
Dans ce cas il existe des formats plus pratiques et convenables (json, XML qui peuvent être sont aussi des composants d'AJAX , voir le "X" de l'acronyme) mais ce n'est pas non plus la bonne méthode et corresponds à des besoins et buts très spécifiques.
La bonne méthode pour ce que vous voulez faire est celle évoquée précédemment: la base de données et le programme qui fait interface(ou liaison) entre la page web (client, chargée, interprétée et affichée dans le navigateur) et la B.D.D.
En tout cas charger un fichier de texte HTML sans le considérer comme une donnée/variable de ce qu'il contient est impossible par le moyen que vous avez fait. On peut par contre indiquer des urls et utiliser les iframes, c'est une solution médiocre mais qui correspond plus à votre raisonnement, qui je le rappelle n'est pas la bonne façon de faire.
Par principe même il est impossible de charger une page PHP dans une page HTML(l'extension du fichier indiquant si serveur PHP doit être sollicité ou pas).
Ce qui se fait par contre et qui corresponds plus à ce que vous indiquez c'est de charger avec PHP une partie de programme(ou page php) qui va générer la structure HTML(donc toujours à séparer des données) ou un partie de la page HTML qui est générée pour ne pas avoir à la réecrire plusieurs fois.
Ce fonctionnement est plus propre à la programmation qu'au web, on le dit modulaire.
Pour ça on utilise la fonction include.
Un exemple:
Sur toutes mes pages apparaît un bandeau avec du contenu(forcément HTML) qui sera repris pour toutes les pages.
On peut très bien écrire le HTML dans un fichier PHP et appeler celui ci(dans le HTML existant de la page web à afficher) au début de chaque page.
Concrètement soit a page php suivante:
et pour la partie à inclure(entete.php)
Pour plus de précisions le manuel de include(et require assez similaire):
http://php.net/manual/fr/function.include.php
et un cours sur ce fonctionnement que je viens de décrire:
https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/inclure-des-portions-de-page