11548 sujets

JavaScript, DOM et API Web HTML5

D'abord bonjour ! et tjs bravo pour ce site !
Voila j'ai deux div avec un overflow en auto sur une page, j'aimerais changer le contenu de mon bloc div de droite en cliquant sur un lien, sans recharger la page, un peut comme une iframe.
Est ce que cela est possible ?
Merci
Smiley smile
Modifié par Mathis (14 Jul 2005 - 19:19)
oui

l'ensemble du contenu doit d'abord être présent sous une forme "normale" et accessible dans la page.

CSS te permet alors de ne rendre visible que la portion de contenu de ton choix. Javascript te permet de changer à la volée la portion visible en changeant les styles CSS.
ok donc impossible de charger une page php dans un div, on peut juste rendre visible ou non un claque avec un contenu déja chargé,
J'ai bien compris ? Smiley ohwell
Mathis a écrit :
ok donc impossible de charger une page php dans un div, on peut juste rendre visible ou non un claque avec un contenu déja chargé,
J'ai bien compris ? Smiley ohwell

Smiley bawling Smiley sweatdrop Smiley fache Smiley angry Smiley crazy Smiley eyecrazy Smiley nut Smiley help Smiley mur Smiley fulmine Smiley crash Smiley pikachudie Smiley pendu Smiley omg

Désolé Smiley langue mais ça défoule Smiley smile

Bon, j'explique le pétage de cable plus haut :

Sur ce forum (et sur bien d'autres Smiley cligne ), on arrete pas de voir confusions entre PHP, includes, rechargement de page, frame etc et à la fin c'est assez pénible quand même Smiley ohwell

Donc...
Reprenons pour la nième fois :

D'un côté le serveur
De l'autre le client (navigateur)

Ce que tu vois, c'est le résultat du travail côté serveur affiché par le client.
Donc, qui dit PHP (et un quelconque include) (langage côté serveur) dit rechargement de page pour restituer le résultat sur le client (navigateur).

Donc, si tu veux modifier le contenu d'un élément par une quelconque action sans que les différents contenus soient déjà présents sur la page, il faut repasser par le serveur et donc par un rechargement de page.

Tu as Ajax qui te permet de faire la communication client/serveur sans recharger la page, mais bon... je préfère pas ajouter en confusion.

Et enfin tu as les frames qui sont des pages incluses dans un "frameset" une boite à frame en quelque sorte, chaque pages étant indépendantes, recharger l'une ne fait pas recharger l'autre, mais du fait de leur indépendance, elles ne sont pas recommandées pour un tas de raison expliquée sur ce forum.

Wala wala ! ouffff Smiley langue
Tu ne peux pas "charger une page php dans une div" au sens où tu l'entends, c'est à dire sans recharger la totalité de la page (et donc à la manière des frames):
- le navigateur va demander au serveur la page index.php avec, disons, un menu et ta div. Dans ta div, un contenu par défaut (disons, ContenuParDefaut).
- tu clique sur un des liens : le navigateur demande au serveur la même page index.php sous la forme indexphp?div=ContenuBis. Le serveur ne lui renvoit pas le ContenuBis seul : il lui renvoit [b] la totalité de la page index.php dans lequel il a inclu ContenuBis au lieu de ContenuPardefaut.[/i]

Il n'y a aucune différence côté navigateur avec le fait de demander une page "normale". La seule différence se situe côté serveur, car au lieu d'avoir le même menu répété sur plusieurs fichiers html, tu aura un code unique de menu sur une seule page index.php (les ContenuParDefaut et ContenuBis étant par exemple dans des fichiers distincts).

L'astuce javascript-CSS indiquée dans le message ci-dessus ne te permettra pas de gérer un très grand nombre de contenus différents (puisque tous les contenus seront présents simultanément dans la même page html). Mais sur un petit nombre de contenus différents, il est agréable pour l'utilisateur car la modification du contenu est instantanée, sans appel au serveur
Laurent Denis a écrit :
Tu ne peux pas "charger une page php dans une div" au sens où tu l'entends, c'est à dire sans recharger la totalité de la page (et donc à la manière des frames):
- le navigateur va demander au serveur la page index.php avec, disons, un menu et ta div. Dans ta div, un contenu par défaut (disons, ContenuParDefaut).
- tu clique sur un des liens : le navigateur demande au serveur la même page index.php sous la forme indexphp?div=ContenuBis. Le serveur ne lui renvoit pas le ContenuBis seul : il lui renvoit [b] la totalité de la page index.php dans lequel il a inclu ContenuBis au lieu de ContenuPardefaut.[/i]

Il n'y a aucune différence côté navigateur avec le fait de demander une page "normale". La seule différence se situe côté serveur, car au lieu d'avoir le même menu répété sur plusieurs fichiers html, tu aura un code unique de menu sur une seule page index.php (les ContenuParDefaut et ContenuBis étant par exemple dans des fichiers distincts).

L'astuce javascript-CSS indiquée dans le message ci-dessus ne te permettra pas de gérer un très grand nombre de contenus différents (puisque tous les contenus seront présents simultanément dans la même page html). Mais sur un petit nombre de contenus différents, il est agréable pour l'utilisateur car la modification du contenu est instantanée, sans appel au serveur


Bah voila ! Merci pour l'info !
Merci pour ta réponse clair et sans énervements ! Smiley lol
Il faut dire, Mathis, que ce forum se débat avec un sérieux problème : beaucoup de gens (et c'est tout à fait normal) font des pages web sans avoir une idée exacte de ce qu'est la relation client / serveur, de ce que fait chacun des deux, de la nature de leurs échanges qui aboutit à l'affichage de ce qu'on voit dans le navigateur, et sans laquelle rien ne se passerait.

"include", "frames", "div", sont ici la source de confusions récurrentes... qu'Olivier a déjà souvent pris en charge. Il fatigue juste un peu, le pôvre Smiley cligne
Modifié par Laurent Denis (14 Jul 2005 - 19:28)