簡體   English   中英

分頁無法使用php和ajax

[英]Pagination not working using php and ajax

下面提到的是3個不同的文件第一個文件Package.php代碼:

<body>
    <form action='Add_Package.php' method='POST'>
    <input type='submit' id='btnAdd' value='Add Package Details'>

    <select id="pack_type" name="pack_type" onChange="package_changed()" >
    <option value="1">Valid</option>
    <option value="0">In-Valid</option>
    </select>
    <center><h1>Package Details</h1></center>
    <div id="package_info" name="package_info"> </div>
    <script type="text/javascript" src="js/service.js" ></script>
</body>

第二個文件service.js代碼:

function package_changed()
{
    var xmlhttp;
    var type;
    type=document.getElementById("pack_type").value;
    if(type=="label")
    return;
    if(window.XMLHttpRequest)
    {
    xmlhttp=new XMLHttpRequest();
    }
    else
    {           
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {                   
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {                       
            document.getElementById("package_info").innerHTML=xmlhttp.responseText;
    }
    }
    xmlhttp.open("GET","Package_description.php?type="+type,true);
    xmlhttp.send();         
}

第三文件Package_description.php代碼:$ perpage = 10;

    $row_count = mysql_query("select count(package_id) from package where is_valid=".$_GET['type']);
    $pages = ceil(mysql_result($row_count,0) / $perpage);   
    $page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1;
    $start=($page - 1) * $perpage;

    $result = mysql_query("SELECT * FROM package where is_valid='".$_GET['type']."'ORDER BY package_id DESC LIMIT $start , $perpage ");

    echo '<div class="pagination pagination-middle pagination-right"><ul>';
    if($pages >= 1 && $page <=$pages)
    {
    for($x=1; $x<=$pages; $x++)
    {           
        if($x==$page)
    {
    echo '<li class="disabled"><a href="?page='.$x.'">'.$x.'</a></li>';
    }
    else
    {
    echo '<li class="active"><a href="?page='.$x.'">'.$x.'</a></li>';
    }                   
    }       
    }
    echo '</ul></div>';
    echo "  <center>                                
    <table class='table table-hover' border=5>
    <th>Package Name</th>
    <th>Package Credits</th>
    <th></th>";

    while($row=mysql_fetch_array($result))
    {
    echo "  <tr>                
    <td>" .$row['package_name'] ."</td>
    <td>" .$row['package_credits'] ."</td>
    <td><center><a href='Edit_Package.php?id=".$row['package_id'] . "'>Edit</a></center </td>
    </tr>";
    }
    echo "  </table><br>            
     </center>
     </form>";  
?>

隊列:當我單擊第一個文件中的有效或無效選項時,它將正確顯示數據。 當記錄超過10條時,當我單擊第二頁時,它不在第二頁上顯示記錄。 問題出在javascript函數上,因為當出現在同一頁面上時,相同的分頁腳本運行良好,這里涉及3個不同的頁面,包括javascript函數。我不知道問題出在哪里,任何機構都有任何解決方案,請告訴我。 提前致謝。

我實際上找到了解決問題的方法,下面是對service.js文件代碼所做的更改:

function package_changed()
{
        var xmlhttp;
        var type;
        type=document.getElementById("pack_type").value;
        var url=document.URL;
        var thenum = url.replace( /^\D+/g, '');

        if(type=="label")
            return;
        if(window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        else
        {           
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {                   
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {                       
        document.getElementById("package_info").innerHTML=xmlhttp.responseText;
        }
        }
        if(thenum=="")
        {
        xmlhttp.open("GET","Package_description.php?type="+type+"&page=1",true);
        xmlhttp.send(); 
        }
        else
        {
        xmlhttp.open("GET","Package_description.php?type="+type+"&page="+thenum,true);
        xmlhttp.send();         
        }
}

實際上,我無法捕獲頁面變量並將其傳遞到package_description.php文件,因此我捕獲了package.php文件url並存儲到url變量中,然后我僅使用.replace()函數提取了其中的數字部分,還有一些根據需要進行位更改。 希望這件事將來會在類似問題出現時對別人有所幫助。 然后,任何查詢都會發表評論。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM