AJAX, reactualisation page

Eléphant du PHP | 398 Messages

30 juin 2008, 16:52

Bonjour,
Je ne connais pas du tout l'AJAX et j ai un peu de mal a comprendre les tutos.
J ai une appli de gestion et affichage de planning de congé d'une équipe de personne. ça fonctionne nickel ^^ mais j'aimerai une derniere touche finale : actualiser le tableau à chaque modification ds la base de donnée, une actualisation automatique quoi. A part AJAX, je n ai pas trouvé d'autre solution...

Donc j ai une fonction XHRConnexion() qui me fait la connexion au serveur avec XMLhttpRequest(), et une fonction d exemple qui est censé permettre l actualisation :

Code : Tout sélectionner

' Exemple d'utilisation function exemple() { // crée une variable var XHR = new XHRConnection(); // affecte le nom de la variable a envoyer et sa valeur XHR.appendData("nom_variable", "valeur_variable"); // envoie les données au serveur à une page de traitement par le mode choisi (POST ou GET) // et indique quelle fonction appellée au retour XHR.sendAndLoad("page.php", "POST", nom_fonction_js); }
Je ne sais pas comment utiliser cette fonction. Dans appenData, je n ai aucune idée des paramètre à envoyer, et pour sendAndLoad, je ne sais pas trop quelle page mettre, celle qui affiche mon tableau ? ou la classe correspondante. et quelle fonction .js mettre en 3ieme parametre :/.

Complètement largué le Bali' ^^.
Merci d'avance.
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 4039 Messages

30 juin 2008, 17:07

Ta page ne peux pas détecter si il y a eu un changement dans la DB.

Tout ce que tu peux faire c'est interroger la DB toutes les quelques secondes pour voir si quelque chose a changé.

Ou alors tenter du COMET, mais c'est de la haute voltige :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 398 Messages

30 juin 2008, 17:14

J ai deja mes methodes en PHP qui recupere les données dans ma base pour être traitées.
Ptete pas que la solution est en AJAX, mais quand les formulaires sont remplis et envoyés ds la BD, ma page principale n est pas actualisée (alors que certains formulaire le sont car dessus, je recupere des données qui viennent d'être modifiés...)
Ptete en plaçant ailleurs l'appel de la méthode qui permet de tout recuperer mais je ne sais pas trop là...
require_once('calendrier.class.php'); //appel de la classe
$oUser = new Calendrier(); //creation nouvel objet
$m_aInfoAbs = $oUser->_recupTout();
Php objet classique quoi..., y a vmt pas moyen de faire mumuse avec AJAX et cette methode qui recupere tout ?
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 4039 Messages

30 juin 2008, 22:14

Soit je percute pas, soit il y a un malentendu..

Tu cherches à faire quoi, exactement ?

Tu veux avoir une page qui, sans la rafraîchir/actualiser/patatipatata, mets automatiquement ses données à jour dés qu'il y a une modification dans la DB ?

En clair, il faudrait que ton serveur informe le client (la page visitée par le visiteur) que le contenu à changé, et qu'il faut lancer la routine de mise à jour ? Ca s'appelle du push, et c'est impossible en web.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 398 Messages

01 juil. 2008, 09:33

Il se peut que je m'exprime mal aussi ^^.
Je remplie ma BD (type d'absence) via de simples formulaires qui sont dans des fenêtre popup.
Des qu'une absence et/ou un utilisateur est rajoutée, ou supprimée, ou modifiée, je voudrai que sur ma page principale qui affiche le tableau des absences, ça prenne en compte directement,sans qu'on ai besoin d'actualisée la page. Pour ça que j'ai pensé à l'AJAX, mais je ne sais pas en faire :?
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

ViPHP
ViPHP | 4039 Messages

01 juil. 2008, 09:53

Non, ajax ne te permets pas de mettre à jour ta page dynamiquement sur simple modification de ta DB.

Tu peux forcer le rafraichissement de ta page par contre, une fois le formulaire envoyé, ou lancer une routine de mise à jour.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 396 Messages

01 juil. 2008, 09:54

C'est impossible automatiquement.
Berzemus t'as donné des pistes dans sa 1ère réponse par contre.

Edit : oops grillé

Eléphant du PHP | 398 Messages

01 juil. 2008, 10:31

Oké, donc s'arrenger pour executer "$m_aInfoAbs = $oUser->_recupTout();" par exemple toutes les 5 secondes...
Algoriquement ça se fait comment ? :lol:
var1 = seconde actuelle
var2 = seconde actuelle +5
si(var1 == var2)
execution

?
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Eléphant du PHP | 377 Messages

01 juil. 2008, 10:34

Alors attend, il faut déjà se poser les bonnes questions, j'ai l'impression que vous ne parlez pas de la même chose :lol:
Combien de personnes se chargeront de la mise à jour de ces calendriers ?
Si il n'y a qu'une personne, il suffit de mettre à jour la partie voulue au moment de la soumission du formulaire.
Si il y en a plusieurs par contre, effectivement il faut partir sur la base d'un rafraichissement toutes les X secondes
Petit scarabée deviendra grand

Eléphant du PHP | 398 Messages

01 juil. 2008, 10:43

Alors attend, il faut déjà se poser les bonnes questions, j'ai l'impression que vous ne parlez pas de la même chose :lol:
Combien de personnes se chargeront de la mise à jour de ces calendriers ?
Si il n'y a qu'une personne, il suffit de mettre à jour la partie voulue au moment de la soumission du formulaire.
Si il y en a plusieurs par contre, effectivement il faut partir sur la base d'un rafraichissement toutes les X secondes
Quelques personnes, qui ont un petit acces (avec juste mdp).
Le mieux serait en fait, mise à jour apres soumission formulaire, donc faut-il appeler la méthode qui recupere les absences (_recupTout() qu'elle s 'apelle) dans ma classe ?

La structure du bouzin :
calendrier.php (affichage) lié à la classe calendrier (qui hérite de la classe absence) qui contient la methode recuperant tout.
Les formulaires sont liés avec la classe absence qui s'occupe de tout les traitements pour formulaire et insertion/modification/suppression dans la BD.
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Eléphant du PHP | 377 Messages

01 juil. 2008, 10:47

Le problème est qu'à la soumission du formulaire, tu pourras mettre à jour la page mais UNIQUEMENT celle de la personne qui vient de modifier. Tous les autres ne seront pas avertis de ce changement.
Donc, plusieurs personnes => timer
Le principe donc :
dans ta page qui affiche tous les calendriers, il faut un javascript qui appelle, toutes les X secondes, un fichier php qui LUI fait appel à ta classe calendrier
Dis nous si tu as compris le principe, ensuite on continuera ;)
Petit scarabée deviendra grand

Eléphant du PHP | 398 Messages

01 juil. 2008, 12:00

Je penses avoir compris, c est un peu comme la fonction proposé dans mon premier post avec le SendAndLoad("ma_page", POST, fonction);
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe