le truc c est que si dans ta page en direct dans le navigateur t'as un request vide, tu iras pas bien loin ...
le code js à l'air correct donc c'est juste un soucis de récupération de ton GET de #### (excuse c'est l heure ;) )
je re-regarde ton php
Version imprimable
le truc c est que si dans ta page en direct dans le navigateur t'as un request vide, tu iras pas bien loin ...
le code js à l'air correct donc c'est juste un soucis de récupération de ton GET de #### (excuse c'est l heure ;) )
je re-regarde ton php
remet moi tes pages s'il te plait
ok mais ca urge pas ! :)
appel.php
Personnellement, je la trouve tout à fait correcte cette requête et j'en ai consommée des tas comme ça. llloollCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php require 'ma_connex.inc.php'; $results = mysql_query ("SELECT * FROM matable WHERE refer = '".$_GET['refer']."'"); while ($tri = mysql_fetch_array($results)) { ?> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <table> <tr><td><?php echo $tri['refer'];?><br> <? echo $tri['ord']; ?><br> <? echo $tri['type']; ?><br> <? echo $tri['nom']; ?><br> <? echo $tri['tel']; ?><br> </td></tr> </table> <? } mysql_close(); ?>
Je pense que c'est plutôt dans l'index que ça cafouille.
index.php
Comme tu peux le voir, j'ai utilisé 2 liens différents pour le test.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type='text/JavaScript'> function mafonction('appel.php?refer=$refer'){ if(xhr_object){ xhr_object.onreadystatechange = function(){ if(xhr_object.readyState == 4 && xhr_object.status == 200){ document.getElementById('mondiv').innerHTML = xhr_object.responseText; } } xhr_object.open("GET","appel.php?refer="+ refer,true); xhr_object.send(null); } else // xhr_objectn'existe pas alert("Probleme !"); } </script> </head> <body> <?php // variable de test, existante dans ma table $refer="test"; ?> <a href="index.php?refer=$refer">Voir</a> <a href="#" onclick="mafonction('index.php?refer=$refer&ord=$ord&type=$type&nom=$nom&tel=$tel')">$refer</a> <div id='mondiv'></div> </body> </html>
Et pour être sûr, j'ai même attribué une variable à $refer.
En l'occurence "test" qui existe bien dans ma table....si si ! :)
alors,
enlèves la balise meta de appel car si tu utilises responseText, il faut pas envoyer le retour en xml ;)
donc appel :
ensuite :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?php require 'ma_connex.inc.php'; $results = mysql_query ("SELECT * FROM matable WHERE refer = '".$_GET['refer']."'"); while ($tri = mysql_fetch_array($results)) { ?> <table> <tr><td><?php echo $tri['refer'];?><br> <? echo $tri['ord']; ?><br> <? echo $tri['type']; ?><br> <? echo $tri['nom']; ?><br> <? echo $tri['tel']; ?><br> </td></tr> </table> <? } mysql_close(); ?>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type='text/javascript'> function mafonction(lien){ if(xhr_object){ xhr_object.onreadystatechange = function(){ if(xhr_object.readyState == 4 && xhr_object.status == 200){ document.getElementById('mondiv').innerHTML = xhr_object.responseText; } } xhr_object.open("GET",lien,true); xhr_object.send(null); } else // xhr_objectn'existe pas alert("Probleme !"); } </script> </head> <body> <?php // variable de test, existante dans ma table $refer="test"; echo "<a href='appel.php?refer=$refer'>Voir</a>"; echo "<a href='#' onclick='mafonction(\"appel.php?refer=".$refer."\")'>$refer</a>"; ?> <div id='mondiv'></div> </body> </html>
Oui Siddh, mais je viens de me rendre compte qu'en finalité la partie JS ne joue aucun rôle, utilisé de cette façon.
On est dans le cas présent dans le cadre d'une syntaxe classique PHP (lien+passage de parametre et affichage, sans qu'intervienne la partie JS.
Je m'explique :
Déjà seul le lien suivant et fontionnel :
Et la résultante est logique, puisqu'on demande au fichier (appel.php) d'afficher le résultat relatif à $refer.Code:echo "<a href='appel.php?refer=$refer'>Voir</a>";
Le résultat est d'ailleurs affiché dans appel.php et non pas le <div> du fichier index.
J'ai supprimé la partie JS pour refaire un test, et j'obtiens la même chose, au demeurant logique, soit l'affichage dans appel.php.
Donc JS ne remplit pas son rôle.
C'est qu'on appelle, un retour à la case départ. :)
En résumé, pour confirmer le fait que la partie JS remplit son rôle de "chargement", le résultat issu de la page appel.php devrait s'afficher dans le <div>.
Dans ce cas de figure, on serait bien dans un contexte xmlhttp. :wink:
oui on est d'accord mais la le but c est de tester le deuxieme lien ;)
avec mon code ça donne quoi ?
C'est justement ton dernier code que j'ai utilisé, mes derniers commentaires s'y rapportent..
Aussi dans JS, cette ligne là ne m'inspire pas, je t'avouerais.
Je ne vois pas trés bien comment js peut interpréter le fait qu'il faut charger tous les éléments relatifs à $refer, et sans connaître l'url.Code:xhr_object.open("GET",lien,true);
Pour cette raison, au départ, je faisais référence à une ligne du genre :
Ce qui me semblait plus adapté pour le "prechargement".Code:xhr_object.open("GET","appel.php?refer=" +refer ,true);
Pas évident tout ça ! :?
on passe l'url en appelant la fonction.Code:onclick='mafonction(\"appel.php?refer=".$refer."\")'
et dans la fonction on appel ce qu'on reçoit "lien" :
et ensuite on l'utiliseCode:function mafonction(lien){
Bonsoir Siddh
Bon, je suis à 2 doigts d'avoir la solution. :wink:
J'ai pu récupérer quelques codes XHR ici et là et que j'ai modifiées.
Et au lieu de les afficher dans un simple div, je pourrai même les faire apparaître dans une fenêtre, ce qui est encore plus confortable.
Tu te souviens quand j'évoquais :
Il est des cas spécifiques où l'utilisation d'un id (auto-incrémenté) est à proscrire car celà ne correspond pas, ou plus à la philosophie de l'application
Apparemment, celà serait une source de probléme.
Pour cette raison, la ligne suivante serait forcemment source de non-fonctionnement.
Alors que celle-ci est plus viable, puisque id est défini comme un élément unique.Code:xhr_object.open("GET","appel.php?refer=" + refer, true);
Ce qui n'est pas le cas pour "refer" étant donné qu'il peut figurer plusieurs dans une table....donc bug !
J'ai fait des premiers tests en rajoutant un id (unique) dans ma table, et avec ce nouveau code XHR "bidouillé", ça fonctionne.Code:xhr_object.open("GET","appel.php?id=" + id, true);
Bon, je n'avais pas forcemment besoin de cet id dans ma table, mais je lui pardonnerai. :)
La seule chose qui m'emm..", c'est que l'id doit être obligatoirement affiché. (grrrrr)
Ca ne m'arrange pas qu'il figure dans les résultats de la requête.
Si j'essaye de le passer dans un type hidden, ca ne marche plus.
Je vais refaire des tests, et je mettrai ma source.