code php
<?php
//inclut "db_connect.php" ;
$db = new MySQLi("localhost", "root", "password", "paginate");
$db->set_charset('utf8mb4');
header('Type de contenu : application/json;charset=utf-8');
$total = 0; //Nombre total de lignes de données du tableau
$per_page = 6; // Nombre de lignes par page
$current_page = 1; // Quelle page est actuellement affichée ?
$total_pages = 0; //Nombre total de pages
// Récupère le numéro de la page actuelle
if (!empty($_GET['current_page'])) {
$page_actuelle = $_GET['page_actuelle'];
}
// Récupère le nombre total de lignes de données du tableau
$query1 = 'sélectionnez le nombre (*) de l'utilisateur';
$row1 = $db->query($query1);
if ($row1 && $rowd = $row1->fetch_row()) {
$total = $ligne[0] ;
}
// Récupère le nombre total de pages
$total_pages = plafond($total / $par_page);
// pagination
$pre = ($current_page - 1) * $per_page ;
$query2 = "sélectionner * dans la limite utilisateur $pre,$per_page" ;
$lignes = $db->query($query2);
$arr = [];
si($lignes) {
$arr = $rows->fetch_all(MYSQLI_ASSOC);
}
$pagination = [
'total' => $total,
'par_page' => $par_page,
'page_actuelle' => $page_actuelle,
'total_pages' => $total_pages
];
array_push($arr, $pagination);
echo json_encode($arr, true);
Capture d'écran du facteur :
Code js :
window.onload = function () {
getData(1);
}
function addURLParam (url, nom, valeur) {
url += (url.indexOf("?") == -1 ? "?" : "&");
url += encodeURIComponent(nom) + "=" + encodeURIComponent(valeur);
URL de retour ;
}
fonction getData(page) {
var data = document.getElementById("data");
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = fonction () {
si (xhr.readyState == 4 && xhr.status == 200) {
var jsonText = xhr.responseText;
console.log(JSON.parse(jsonText));
}
}
var url = "paginate.php";
url = addURLParam(url, "page_actuelle", "page");
xhr.open("get", url, true);
xhr.send();
Il n'y a aucun contenu dans la base de données devant la console Chrome
Devrait l'être
$query2 = "sélectionner * dans la limite utilisateur $pre,$per_page";
$lignes = $db->query($query2);
$arr = [];
si($lignes) {
$arr = $rows->fetch_all(MYSQLI_ASSOC);
Il y a un problème avec SQL ici, car il y aura des erreurs avant si ($rows) est ajouté. Cependant, je suis très surpris de savoir pourquoi php peut fonctionner normalement. La version php est 7.0.8
C'est un problème que js ne transmet pas correctement les paramètres dans addURLParam()
changé en
C'est vraiment honteux de dire que j'ai découvert ce bug après avoir posté la question. J'ai édité et modifié la question une fois, mais l'école a eu une panne de courant et l'ordinateur est tombé en panne d'électricité, donc je n'ai pas pu la tester. . . . . .
Mais le point important est que j'ai ajouté la méthode addURLParam en dernier. Elle s'est avérée directe
.addURLParam() est une méthode de programmation avancée js, dit-il
Les amis qui connaissent la raison peuvent répondre à ce point, je vais d'abord le rechercher~