Page 1 sur 1
XMLHttpRequest: Comment appeler une fonction ?
Publié : 11 déc. 2005, 10:32
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...
Cordialement.
Guilhem.
Publié : 11 déc. 2005, 16:43
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().
Publié : 11 déc. 2005, 16:59
par guilhem_mdg
Hum... Oui merci mais en fait cela ne répond pas à ma question (ou alors j'ai mal compris).
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.
Publié : 11 déc. 2005, 17:09
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
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)
Publié : 11 déc. 2005, 17:24
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()...

Publié : 12 déc. 2005, 21:23
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.
Publié : 13 déc. 2005, 11:20
par guilhem2
Euh tu peux rappeler la page qui contient le code XHR ?

Publié : 13 déc. 2005, 14:54
par guilhem2
Benoît,
Peux-tu m'expliquer d'avantage ?
Merci !