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

时间:2013-09-20 18:02:17

标签: javascript php sql ajax

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

看看: Server side paging in 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

祝你好运。