[AJAX] Ajax et passage de parametre entre js et Php
Voila, je veux utiliser des boutons pour faire diffiler un tableau que je recupere de ma base de donnees par palier de 3 lignes
j utilise un script avec l objet XMLHttpRequest pour le faire de maniere asynchrone (au clique du bouton) mais j arrive pas a passer le nbre lignes pour pouvoir incrementer mon affichage a chaque clique
voila mon code:
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| <?php
//On se connecte
connectMaBase();
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$i=0;
$select = 'SELECT idmethode,nom,description,lien FROM methode limit '.$i.',3 ';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<div id="methode">';
echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999" width="101">IdMethode</td>';
echo '<td bgcolor="#669999" width="101">Nom</td>';
echo '<td bgcolor="#669999" width="140">Description</td>';
echo '<td bgcolor="#669999" width="145">Lien</td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['idmethode'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['description'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['lien'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
echo '</div>';
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
echo '</table>'."\n";
echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
echo'<tr>';
echo'<td width="545"> </td>';
echo'<td width="61"><input type="button" value="Precèdent" onClick=""/></td>';
echo'<td width="61"><input type="button" value="Sommaire" onClick=""/></td>';
echo'<td width="61"><input type="button" value="Suivant" onClick="JavaScript:follow();"/></td>';
echo'</tr>'."\n";
echo'</table>';
?> |
mon script Js
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 35 36 37 38 39 40 41
| function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function follow(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function() {
if(xhr.readyState !=4){
document.getElementById('methode').innerHTML='Chargement en cours'}
else
{document.getElementById('methode').innerHTML=xhr.responseText}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax_follow1.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
j=+3;
xhr.send("i="+j);
} |
mon Script Php
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 35 36 37 38 39 40 41 42 43 44 45
| <?php
header('Content-Type: text/plain; charset=ISO-8859-1');
//On se connecte
mysql_connect("localhost","root","");
mysql_select_db("assvisual");
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$i=+3;
$select = 'SELECT idmethode,nom,description,lien FROM methode limit '.$i.',3 ';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999" width="101">IdMethode</td>';
echo '<td bgcolor="#669999" width="101">Nom</td>';
echo '<td bgcolor="#669999" width="140">Description</td>';
echo '<td bgcolor="#669999" width="145">Lien</td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['idmethode'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['description'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['lien'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?> |