un include de contenu dans page sans rechargement : possible? [php] - PHP - Programmation
Marsh Posté le 28-10-2009 à 16:53:49
visualsyndrom a écrit : Bonjour, |
Salut,
En gros tu veux que le clic sur le menu recharge la div qui contient le contenu, mais pas toute la page.
Donc on est en train de parler d'AJAX. Le langage côté serveur n'est pas du tout en cause dans ta problématique. Ici tout se passe en Javascript, tu pourrais appeler de l'ASP, un fichier HTML en dur, une servlet Java, du PHP...
Déjà est-il possible dans ton menu Flash de mettre du javascript derrière les liens, au lieu de mettre les URL de tes rubriques ?
Si non, c'est mort (et PHP n'a rien à voir là-dedans)
Si oui, il faut que tu regardes comment fonctionne AJAX. En gros l'idée c'est :
- clic sur une entrée de menu (par exemple News)
- appel d'une fonction javascript loadPage dédiée au chargement d'une page via AJAX
- cette fonction javascript va faire l'appel d'une URL sur ton serveur (donc le script PHP) qui renvoie uniquement le contenu de la div News
- tu récupères ce contenu dans une variable javascript et tu l'injectes directement dans la div principale.
Voilà pour le principe. Pour l'implémentation il faut s'y connaître en AJAX (et donc en Javascript). Si tu ne t'y connais pas je te recommande d'utiliser une librairie existante qui fait les choses pour toi, par exemple jQuery ou encore extJs. Tu trouveras facilement plein d'exemples à droite à gauche.
Encore une chose : cette solution détourne le fonctionnement classique d'un navigateur qui est de charger des URL lorsqu'on clique sur des liens. Ici tes liens appellent du Javascript et ne changent pas réellement de page au vu du navigateur. Par conséquent il sera impossible d'utiliser Précédent/Suivant...
En espérant t'avoir été utile...
Bon courage
Marsh Posté le 28-10-2009 à 17:00:09
Salut!
Merci beaucoup pour ta réponse. Effectivement, je faisais fausse route. Je vais me pencher sur les solutions que tu proposes!
A bientôt.
Marsh Posté le 28-10-2009 à 18:24:45
ben déjà, faire un site entièrement en flash, c'est faire fausse route
Mettre de la musique sur un site web, c'est faire fausse route (au moins, pense à mettre un bouton "stop" pour couper la musique).
Faire une navigation reposant uniquement sur du javascript, c'est faire fausse route.
Un site utilisable par tous, c'est fait en xhtml/css (et côté serveur php ou autre) avec du javascript non intrusif (voire du flash) pour améliorer l'ergonomie de l'IHM.
Marsh Posté le 28-10-2009 à 18:29:13
Yep!
Dans mon cas seul le menu est en Flash. Le lecteur audio possède effectivement un stop, ainsi qu'un volume et ne démarre pas automatiquement. Mais c'est pour un groupe de musique donc il en faut un.
Je suis en train de me rencarder sur le jQuery.
Marsh Posté le 28-10-2009 à 18:33:57
comme lib javascript pour Ajax, y'a aussi Prototype et Script.aculo.us (la dernière, c'est surtout pour faire des animations).
Marsh Posté le 29-10-2009 à 08:07:26
nONNNNN pas prototype ni scriptaculous
Mootools ou Jquery, mais arrêtez de vendre prototype, c'est une lib en perte de vitesse et overlourde
Marsh Posté le 29-10-2009 à 13:25:01
visualsyndrom a écrit : Dans mon cas seul le menu est en Flash. |
Donc quelqu'un qui n'a pas de lecteur Flash peut voir toutes tes pages, à condition d'y accéder sans passer par le menu ?
Marsh Posté le 28-10-2009 à 16:27:19
Bonjour,
Premier post suite à de longues recherches infructueuses...
En fait je pense que ce que je compte faire n'est pas possible avec php mais je n'ai pas trouvé de réponse claire à ce sujet et je débute dans le domaine.
Je suis en train de créer un site dont le menu est en flash / AS3. Ce menu contient un player audio et je ne veux donc pas de rechargement de la page pendant la navigation, ce qui a pour effet de couper le son. La méthode du GET en PHP ne fonctionne donc pas ici.
Est il possible en php lors du clic sur le lien du menu de faire apparaitre le contenu désiré (par exemple 'news' ou 'biographie') dans une div de la page sans recharger la page en question?
Suis je obligé de passer par une iframe?
Merci pour vos avis éclairés!