分页不使用php和ajax工作

时间:2013-05-10 19:18:11

标签: php javascript 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();         
}

第3个文件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>";  
?>

Que:当我点击第一个文件中的有效或无效选项时,它将正确显示数据。 当记录超过10时,当我点击第2页时它没有显示第2页的记录。 问题是使用javascript函数,因为相同的分页脚本在同一页面上运行时运行良好这里涉及3个不同的页面,包括javascript函数我不知道问题究竟在哪里,任何机构都有任何解决方案请让我知道。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我实际上找到了解决问题的方法 以下是我对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()函数提取了它的数字部分根据需要做了一些改变。 希望这件事可能在将来出现类似问题时帮助某人。 然后任何查询都做评论。 感谢