XMLHttpRequest: Comment appeler une fonction ?

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
guilhem_mdg
Lézard à collerette
Messages : 438
Inscription : 18 juin 2004, 09:13

XMLHttpRequest: Comment appeler une fonction ?

Message par guilhem_mdg »

Bonjour à tous,
Je reviens avec mes XMLHttpRequest. ;-)
Voilà mon problème.
J'ai une page index.php et une page fonctions.php qui contient toutes mes fonctions PHP notamment celle qui permet de remplir une table (<table><tr>...) à partir d'une requête SQL. Seulement voilà, je voudrai que lorsque je clique sur une ligne de cette table (affichée à partir du fichier fonctions.php) la table se recharge car il peut y avoir eu une MAJ de la table SQL. Mais uniquement la table, pas toute la page ! J'ai pensé au XMLHttpRequest mais je ne sais pas comment faire. Pouvez-vous m'aider ?
Merci de votre aide.
J'espère avoir été assez clair... :lol:
Cordialement.
Guilhem.
Cordialement.
Guilhem.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

La première chose à faire c'est de créer un script php qui renvoie uniquement la partie de page dont tu as besoin (le tableau mis à jour donc).

Ensuite, si j'ai bien compris ce que tu veux faire, tu mets un évènement onclick sur les lignes de ton tableau qui lance la requête HTTP vers ton nouveau script PHP.

Ensuite, dans l'évènement de réponse tu identifies d'abord le tableau dans ta page à l'aide des fonctions DOM (par exemple si tu as donné un attribut id unique au tableau, tu le sélectionnes avec getElementById()) et tu le remplaces par le texte de réponse à l'aide de la méthode innerHtml().
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
guilhem_mdg
Lézard à collerette
Messages : 438
Inscription : 18 juin 2004, 09:13

Message par guilhem_mdg »

Hum... Oui merci mais en fait cela ne répond pas à ma question (ou alors j'ai mal compris). :lol:

En fait, à partir d'une page index.htm, j'ai:

Code : Tout sélectionner

<script>
function reaffiche(){
}
</script>
<tr onclick='reaffiche();'>Bla bla...</tr>
Je voudrai que reaffiche() me lance la fonction 'remplitµTableau' qui se trouve dans fonctions.php.

Code : Tout sélectionner

<?php
function remplitTableau(){
$table = "<table>....";
return $table;
}
Et me reremplisse la table sans recharger la table !

Je ne sais pas si c'est ce que tu as voulu dire mais si c'est le cas alors peux-tu détailler d'avantage ?
Merci 1000 fois... ;-)

Corduialement.

Guilhem.
Cordialement.
Guilhem.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Ben heu si ça répond à ta question... dans ta fonction JavaScript reaffiche() tu lances ta requête avec XmlHttpRequest()... vers une page php qui contient en tout et pour tout

Code : Tout sélectionner

<?php
include "fonctions.php";
echo remplitTableau();
?>
Je n'avais pas le nom de tes fonctions mais tu es quand même supposé savoir laquelle fait quoi :/

Pour le reste, entraine-toi avec http://developer.mozilla.org/fr/docs/AJAX:Premiers_pas (tu n'as pas besoin de la dernière partie sur XML, tu peux utiliser responseText tel quel pour remplacer ton tableau)
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
guilhem_mdg
Lézard à collerette
Messages : 438
Inscription : 18 juin 2004, 09:13

Message par guilhem_mdg »

Ah ok, c'est bien ce que je pensais. Je suis obligé de créer une page qui contient l'appel vers la fonction. Je ne peux pas utiliser directement fonctions.php --> maFonction()...
:cry:
Cordialement.
Guilhem.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Tu peux utiliser ce qu'on appelle un "dispatcher", une page qui appelle la fonction voulue en fonction des paramètres.

Par exemple, si tu l'appelles sans paramètre (index.php) elle affichera la page complète, mais si tu ajoutes un paramètre (index.php?mode=tableau) elle renvoie juste le tableau, etc.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
guilhem2

Message par guilhem2 »

Euh tu peux rappeler la page qui contient le code XHR ? :lol:
guilhem2

Message par guilhem2 »

Benoît,
Peux-tu m'expliquer d'avantage ?
Merci !
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités