[AJAX] Gérer plusieurs pages de résultats d'une requête
Bonsoir,
J'aimerais afficher les résultats d'une requête par 10.
Page 1 = les 10 premiers, page 2 = les 10 suivants, etc.. et accéder à la page voulue en cliquant sur le numéro adéquat.
Voici mon code :
Au niveau de mon formulaire :
Code:
1 2 3 4 5 6 7 8
|
<tr>
<div id="liste">
<?php
affInv(0);
?>
</div>
</tr> |
Ma fonction affInv() au niveu de mon fichier fonctionsPhp.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 46 47 48 49 50
|
function affInv($numPage)
{
if($numPage)
$limiteInf = ($numPage * 10) - 1;
else
$limiteInf = 0;
$connect = connection("../interfaces/gestProd.php");
$requete = "select count(0) from produits_tb";
$result = mysql_query($requete, $connect);
@$nb = mysql_fetch_array($result);
$requete = "select cle_prod, ordre_liste_prod, denom_prod, (select nom_fourn from fournisseurs_tb where cle_fourn = cde_fournisseur1_prod) from produits_tb where supprime_prod = 0 or supprime_prod = 2 order by ordre_liste_prod limit $limiteInf, 10;";
$resultat = mysql_query($requete, $connect);
$num_result = mysql_num_rows($resultat);
mysql_close($connect);
if($nb[0])
{
for($i = 0; $i < $num_result; $i++)
{
$row = mysql_fetch_array($resultat);
echo "<td id='tdcontenu'><input type='text' name='ordreProd' id='ordreProd' value='$row[1]' size='4'><input type='hidden' id='cleProd' value='$row[0]'></td>
<td id='tdcontenu'>$row[2]</td>
<td id='tdcontenu'>$row[3]</td>
<td id='tdcontenu'><input type='text' name='quantite' id='quantite' value='' size='4'></td>
</tr>";
}
echo "<tr>
<td id='tdcontenu'>Pages</td>
<td id='tdcontenu' colspan='2'>";
if($nb[0] % 10)
$nombreLiens = ($nb[0] / 10) + 1;
else
$nombreLiens = $nb[0] / 10;
for($i = 1; $i <= $nombreLiens; $i++)
{
if($i != 1)
echo " - ";
echo "<a href='' onclick='majListeInv($i)'>$i</a>";
}
echo " </td>";
}
} |
Ma fonction (pour l'AJAX) majListeInv() au niveau de mon fichier fonctionsJs.js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
function majListeInv(num)
{
{
xhr = getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
document.getElementById('listeInventaire').innerHTML = xhr.responseText;
}
}
xhr.open("POST",'../transferts/ajaxMajListeInv.php',true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("limiteInf="+num);
}
} |
Et, enfin, mon fichier ajaxMajListeInv.php :
Code:
1 2 3 4 5
|
<?php
if(!empty($_POST['limiteInf']))
affInv($_POST['limiteInf']);
?> |
Le problème que je rencontre est que, lorsque je clique sur un numéro de page, mon div ne se met pas à jour. Je pense que c'est dû au fait que mon fichier ajaxMajListeInv.php n'est pas chargé, mais je n'en vois pas la raison.
Est-ce que quelqu'un aurait une idée?
Merci d'avance pour vos réponses.
Christophe