Maison > Questions et réponses > le corps du texte
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
巴扎黑2017-05-16 13:13:56
C'est un problème que js ne transmet pas correctement les paramètres dans addURLParam()
url = addURLParam(url, "current_page", "page");
changé en
url = addURLParam(url, "current_page", page);
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
.xhr.open("get", "paginate.php?current_page="+page, true);
addURLParam() est une méthode de programmation avancée js, dit-il
Une erreur qui se produit souvent lors de l'utilisation des requêtes GET est qu'il y a un problème avec le format de la chaîne de requête. Le nom et la valeur de chaque paramètre de la chaîne de requête doivent être encodés à l'aide de encodeURIComponent() avant d'être placés à la fin de l'URL
Les amis qui connaissent la raison peuvent répondre à ce point, je vais d'abord le rechercher~