Rediriger en php sans rafraichissement

the_rocknroll
Invité n'ayant pas de compte PHPfrance

16 nov. 2009, 23:21

Bonjour,
En fait je suis en train de créer un site web avec des redirections et tout, mais je voudrais faire ça genre style facebook , comme quand on clique sur "liens" par exemple, ça ne rafraichis pas toute la page .
Je crois qu'il y a un paramètre qui change a la fin,dans home.php?filter=pp a chaque fois qu'on change de page c'est le filter qui change.
Merci de votre aide.

ViPHP
ViPHP | 1136 Messages

17 nov. 2009, 08:38

Salut ,

Cela s'appelle de l'ajax , ton lien exécute une fonction javascript , qui construit une requête XMLHttpRequest , récupère le résultat , et l'affiche ( ou pas ) à un l'endroit souhaité ( un div dans ta page par exemple )

Il n'y a donc aucun rafraichissement , car se mécanisme se passe derrière les rideaux .

Je te conseil donc de regarder du coté des librairie js ( framework ) comme

scriptaculous
mootools
jquery

qui t'aideront grandement à faire ce genre de chose.

Ch.

ViPHP
fab
ViPHP | 2657 Messages

17 nov. 2009, 13:56

Je vais aller un peu plus loin que Stopher, dans le style de facebook c'est bien beau mais c'est loin d'être simple! Facebook utilise une sorte de double dispatch pour le rendu de ses pages.
En effet quand on navigue sur le site, on peut à tout moment recharger la page ou transmettre le lien et cela peut paraître simple mais je connais très peu de site qui ont réussis ça aussi bien que facebook.
La petite astuce c'est de récupérer l'url en javascript, pour le dispatch ajax les informations utiles sont disponible après l'ancre ( # ), au passage la modification d'une ancre ne nécessite pas de rafraichissement de la page et c'est bien pour ça qu'on lutilise dans ce genre de cas.
Les liens sont réécrits en direct lorsque l'on clique dessus, pour garder une compatibilité avec le javascript désactivé

Exemple : http://www.facebook.com/home.php?ref=logo#profile

Etape 1 : Le php charge la partie commune à toutes les pages du site, donc bandeau en haut..

Etape 2 : Le javascript s'occupe d'appeler en ajax les autres parties du site en prenant en compte tout d'abord le contenu après l'ancre et ensuite avant l'ancre ( 'lurl en dur )

Enfin c'est en gros le principe si j'ai pas été clair faut le dire :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 nov. 2009, 20:15

Voici également quelques tuto de la FAQ pour y voir plus clair sur ajax et les appels par l'url

[Tuto][Javascript] Introduction à AJAX

[Tuto][PHP,Javascript(AJAX)] Application AJAX accessible par URL
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

the_rocknroll
Invité n'ayant pas de compte PHPfrance

18 nov. 2009, 02:40

Merci de votre aide a tous !
Je vais passer par ajax alors, vu que c le seul moyen de faire ça
fab bravo pour ton explication y a pas plus clair ! lol
Merci encore