Bonjour,
c'est vraiment un sacré merdier AJAX pour un débutant qui s'y colle.
J'ai bien compris le mécanisme global mais quand il s'agit d'appliquer la chose, ne serait-ce qu'à un petit exemple, rien ne va plus.
En gros, je voulais tester un exemple simple en reprenant ce "pattern":
http://www.w3schools.com/ajax/ajax_serverscript.asp
http://www.w3schools.com/ajax/ajax_server.asp
En fait, au lieu d'avoir un formulaire et d'afficher l'heure, je souhaite appeler une page .php effectuant un accès à une BDD MySQL, et compter le nombre d'entrées dans une table. Je souhaite donc récupérer ce nombre, puis que cette valeur soit "retransmise" par la page .html appelante, basé sur un appel Ajax / JScript.
Voici ma page TestAjax.html qui fait appel à la page NumberMembers.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
35
36
37
38
39
40
41 <html><body> <script type="text/javascript"> function ajaxFunction() {var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { var data = xmlHttp.responseText; // ??? how to retrieve the result from the .php process var newline = document.createElement("div"); document.getElementById('answer').appendChild(newline); var txt = document.createTextNode(data); newline.appendChild(txt); } } xmlHttp.open("GET","NumberMembers.php",true); xmlHttp.send(null); } </script> HOW MANY MEMBERS? <p> <a href="javascript:ajaxFunction();"> Tell me:</a> <p> <div id="answer"></div> </body> </html>
Et voici donc mon code PHP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php // connecting to the Database $con = mysql_connect("localhost","root","root"); if(!$con) { die('Internal error - Could not connect: ' . mysql_error()); } // select database mysql_select_db("wkDB", $con); $result = mysql_query("SELECT count(*) FROM members_login"); // QUE FAIRE A PARTIR DE LA? // je précise: un echo $result me renvoit ?>
Le problème se trouve après ma requête SQL. Quelle est la syntaxe précise pour récupérer mon SELECT count ?
Je précise que echo $result; m'affiche "Resource id #3" et non pas 1,2, ou 300...
Ensuite? comment faire pour que ce résultat vienne se greffer dans ma page .html appelante, au niveau du <div id="answer"> ? Je pensais que c'était bien préciser dans ma fonction onReadyStateChange.... Apparemment non.
Merci de votre aide pour me répondre dans mon cas précis, puis dans un deuxième, m'expliquer plus généralement comment je dois conduire ce couplage entre un appel Ajax et un traitement PHP. C-a-d comment s'y prendre si j'ai plusieurs types de données, plusieurs résultats php à retourner sur ma page appelante?
Cordialement,
B.
Partager