0

我正在为 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 从数据库中检索新数据时对这些数据进行分页的方法。请帮忙,因为我找不到办法。

提前致谢。

4

1 回答 1

1

看看: 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

祝你好运。

于 2013-09-20T18:29:25.313 回答