Bonjour !
Je souhaiterai faire de la pagination et j'utilise les technologies suivantes PHP/Ajax/MySQL.
J'ai essay� de chercher un peu partout sur le net et je suis tomb� sur �a :http://www.dator.fr/langages/php/une...ation-en-ajax/ mais � vrai dire, je n'y comprend pas grand chose
J'ai une page php (Accueil.php par exemple) sur laquelle j'ai un image submit et plusieurs select.
accueil.php
Lorsque je clique sur ce bouton, une fonction javascript est appel�e. Cette fonction r�cup�re les donn�es dans les formulaires et envoi les donn�es pour une page php par la m�thode GET.
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 <label class="labelRecherche"><span>Choix :</span></label> <select id="choix" class="selectRecherche" onchange="envoiDonneesInfo();"> <option value="Vente">Vente</option> <option value="Recherche">Recherche</option> </select> </p> <p class="rightTxt1"> <label class="labelRecherche"><span>Type</span> de bien :</label> <select id="type" class="selectRecherche" onchange="affPrecision(this);"> <option value="PCDeBureau">PC de Bureau</option> <option value="Portable">Portable</option> <option value="Composants">Composants</option> <option value="Moniteurs">Moniteurs</option> <option value="Périphériques">Périphériques</option> <option value="Logiciel">Logiciel</option> </select> </p> <input type="hidden" id="annonce" value="informatique"/> <input type="image" src="../images/go.jpg" onClick="envoiDonneesInfo()"><br /><br /><br /> <div id="reponse" align="center"></div>
scripts.js
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 function envoiDonneesInfo(){ var monObjetXhr = null; // INITIALISATION var lien = ""; if(window.XMLHttpRequest){ // POUR FIREFOX monObjetXhr = new XMLHttpRequest(); } else if(window.ActiveXObject){ // POUR INTERNET EXPLORER monObjetXhr = new ActiveXObject("Microsoft.XMLHTTP"); } else { // SI LE NAVIGUATEUR NE SUPPORTE PAS AJAX alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } // LES VALEURS DES CHAMPS SELECTS annonce = document.getElementById("annonce").value; choix = document.getElementById("choix").options[document.getElementById("choix").selectedIndex].value; type = document.getElementById("type").options[document.getElementById("type").selectedIndex].value; lien = "afficher.php?annonce="+annonce+"&choix="+choix+"&type="+type; monObjetXhr.open("GET", lien); // ENVOI VERS LA PAGE afficher.php en GET et en mode assynchrone monObjetXhr.onreadystatechange = function() { if(monObjetXhr.readyState == 4) { // SI LA REPONSE EST CORRECTE var xmlDocument = monObjetXhr.responseXML; var annonce= xmlDocument.getElementsByTagName('annonce'); var annonce_choix= xmlDocument.getElementsByTagName('annonce_choix'); var annonce_type= xmlDocument.getElementsByTagName('annonce_type'); if(annonce.length > 1) { nbreAnnonces = '<span>'+annonce.length+'</span> annonces trouvées :'; } else if (annonce.length == 0){ nbreAnnonces = '<span>Aucune</span> annonce trouvée !'; } else { nbreAnnonces = '<span>'+annonce.length+'</span> annonce trouvée :'; } document.getElementById("reponse").innerHTML = "<p class='rightTxt1'> "+nbreAnnonces+" </p><table id='immoTab' cellpadding=5 cellspacing=5></table>"; function insRow(c1, c2){ var x=document.getElementById('immoTab').insertRow(0); var y=document.getElementById('immoTab').insertRow(1); var a=x.insertCell(0); var b=x.insertCell(1); a.innerHTML=c1; b.innerHTML=c2; } } for (i=0;i<annonce.length;i++){ insRow( annonce_choix[i].childNodes[0].nodeValue, //1 Choix annonce_type[i].childNodes[0].nodeValue, //2 type } } monObjetXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); monObjetXhr.send(null); }
La page php r�cup�re les donn�es et construit la requ�te MySQL a ex�cut�e et une fois termin� affiche le r�sultat sous forme xml � l'aide d'echo.. (sur la m�me page).
afficher.php
La fonction javascript qui a attendu que l'XML soit bien �crit, parse la page php (transform� en xml pour l'occasion) et affiche le r�sultat sous forme de tableau gr�ce � innerHTML dans la div r�ponse plac�e de la page d'accueil.
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 <?php header("Content-Type: text/xml; charset=ISO-8859-1"); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CONNEXION A LA BASE DE DONNES mysql_connect('localhost','******','******'); mysql_select_db("annonces"); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! INITIALISATION DES REQUETES if(isset($_GET['annonce'])){ $annonce = $_GET['annonce']; } if(isset($_GET['choix'])) { $choix = $_GET['choix']; } if(isset($_GET['type'])) { $type = $_GET['type']; } $query = "SELECT * FROM ".$annonce." WHERE choix = '".$choix."' AND type = '".$type."'"; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! RENVOI XML $requete = mysql_query($query ); $total_ligne = mysql_num_rows($requete); $ligneParPage=3; $total_page = ceil($total_ligne / $ligneParPage); echo '<?xml version="1.0" encoding="iso-8859-1" ?>'; echo "<immobilier>"; echo "<annonces>"; while($affichage = mysql_fetch_array($query)){ echo '<annonce id ="'.$affichage['id_info'].'">'; echo "<annonce_choix>".$affichage['choix']."</annonce_choix>"; echo "<annonce_type>".$affichage['type']."</annonce_type>"; echo '</annonce>'; } echo "</annonces>"; echo "</immobilier>"; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DECONNECTION mysql_close(); ?>
Je pense qu'il faut d'une part agir sur la page afficher.php, voir le nombre de r�sultat qu'il retourne, c'est pourquoi j'ai mis $total_ligne etc... Mais apr�s je ne sais plus quoi faire :s
Merci beaucoup de m'aider car je s�che compl�tement :s
Partager