使用 AJAX 从数据库中检索数据,并在没有框架的情况下对它们进行分页


Retrieve data from Database with AJAX and paginate them without a framework

我正在为一门关于 Web 技术的课程做一个项目。我想使用 AJAX 请求从数据库中检索一些数据,然后对它们进行分页。数据已使用以下脚本过滤:

function applyFilter( str, id)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("ajax_content").innerHTML=xmlhttp.responseText;
        }
}
xmlhttp.open("GET","filter_script.php?value='"+str+"'&filter="+id,true);
xmlhttp.send();
}

这是filter_script.php:

<?php
    $value = $_GET['value'];
    $filter = $_GET['filter'];
    //Ζητούμε από τον server το global_var αρχείο
    require_once("global_var.php");
    //Συνδεόμαστε στη Βάση δεδομένων
    $dbc = mysqli_connect(HOST, USER, PASS, DB_NAME)
        or die("Error in connecting with Databse");
    //Δημιουργούμε το κατάλληλο query. Εδώ χρειαζόμαστε
    //να πάρουμε τη λίστα με τις παραγγελίες από τη Βάση
    $query = "select date, service, price, product from orders WHERE $filter = $value  ORDER BY date DESC";
    //Αποθηκεύουμε τα αποτελέσματα από τη Βάση
    $result = mysqli_query($dbc, $query)
        or die("Error in querying the Databse");
    //Δημιουργούμε το header του πίνακα με τις παραγγελίες
    echo '<table id="orders">';
    echo    '<tr class="header">';
    echo        '<td>Date</td>';
    echo        '<td>Service</td>';
    echo        '<td>Price</td>';
    echo        '<td>Product</td>';
    echo    '</tr>';
    //Εμφανίζουμε τις παραγγελίες σε μορφή πίνακα.
    while ($row = mysqli_fetch_array($result)) {
        echo    "<tr>";
        echo        '<td class="date">'.$row['date'].'</td>';
        echo        '<td class="service">'.$row['service'].'</td>';
        echo        '<td class="price">'.$row['price'].'</td>';
        echo        '<td class="product">'.$row['product'].'</td>';
        echo    "</tr>";
    }
    echo '</table>';
    //ΚΛείνουμε τη σύνδεση με τη βάση δεδομένων
    mysqli_close($dbc);
    ?>

评论是希腊语,所以请忽略它们。

因此,我想要一种方法,在每次 AJAX 从数据库中检索新数据时对这些数据进行分页。请帮忙,因为我找不到办法。

提前谢谢。

看看:SQL Server 中的服务器端分页

在 AJAX 请求中包含另一个参数(例如 start),并在 BETWEEN cnodition 中使用该参数。

xmlhttp.open("GET","filter_script.php?value='"+str+"'&filter="+id+"&start="+start,true);

在现实世界中,您将使用一些框架,例如jQuery或Prototype。这使得AJAX的使用更简单。还可以考虑使用 JSON 响应,这样您就不必为将来的任何 UI 级别更改而不断更改 PHP。在大多数情况下,任何服务器端脚本都应仅包含主应用程序逻辑。不要在那里混淆 HTML。我不太喜欢PHP,但这里有一些你可能会觉得有趣的事情:http://www.php.net/manual/en/function.json-encode.php

祝你好运。