0

下面提到的是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函数我不知道问题到底出在哪里,是否有任何机构有任何解决方案请告诉我。提前致谢。

4

1 回答 1

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() 函数仅提取了其中的一部分和一些根据需要进行位更改,因此完成。希望将来出现类似问题时,这件事可能会对某人有所帮助。任何查询然后做评论。谢谢

于 2013-05-11T05:03:15.037 回答