创建tablesorter分页时表行消失 - php

我想为我的表排序器表创建分页。但是我的分页不起作用,但是有上一个,下一个按钮。只有它不起作用。每当我尝试删除$(Document).ready.....时,它都起作用,但是我的所有数据行都消失了。它只是空白,仅剩下的是我的表格标题和该分页按钮。我的代码有问题吗?

这是我的index.php

<head>
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/jquery.tablesorter.pager.css">
<link rel="stylesheet" href="css/jquery.dataTables.min.css">
<!----
---->
<script type="text/javascript" src="js/jquery-latest.js"></script> 
<script type="text/javascript" src="js/jquery.tablesorter.js"></script> 
<script type="text/javascript" src="js/jquery.tablesorter.pager.js"></script> 
<!--<script type="text/javascript" src="js/jquery.dataTables.min.js"></script> -->



    <script type="text/javascript">
        $(document).ready(function() 
        { 
            $("#myTable")
            .tablesorter({widthFixed: true, widgets: ['zebra']})
            .tablesorterPager({container: $("#pager")}); 
        } 
        ); 
    </script>

    </head>

    <?php 

        // First we execute our common code to connection to the database and start the session 
        require("common.php"); 

    ?>

    <form class="login, reminder">
            <h1>Search your data...</h1>
    <p style="text-align: center">Enter your search here: <input type="text" id="search" name="search" placeholder="Enter your search here">&nbsp;&nbsp;
    Select education level: <select id="edulevel">
    <option value="ALL">ALL</option>
    <option value="PHD">PHD</option>
    <option value="MASTER">MASTER</option>
    <option value="DEGREE">DEGREE</option></select></p>    
    <div id="contentBox" class="login, reminder" style="margin:0px auto; width:95%; overflow-y: auto; height:304px;">


    <div id="result" class="login"></div>
    <script type="text/javascript">

        /*
        setInterval(function(){
            //alert('Refreshing database');
            $("#result").load("res.php", "update=true").fadeIn("slow").text("Refreshing Database");
        }, 10000);
        */


        function update() {
            $.ajax({
                url: 'userres.php',
                dataType: 'text',
                success: function(data) {
                    if (parseInt(data) == 0) {
                        $("#result").css({ color: "red" }).text("offline");
                    } else {
                        $("#result").css({ color: "green" }).text("online");
                    }
                }
            });    // properly end the ajax() invocation
        }


        function ajaxSearchUpdater(){
            $("#result").show();
            var x = $("#search").val();
            var y = $("#edulevel").val();
            $.ajax({
                type:'POST',
                url:'userres.php',
                data:'q='+x+'&e='+y,
                cache:false,
                success:function(data){
                    $("#result").html(data)
                }
            });
        }

        $(document).ready(function(e) {
            ajaxSearchUpdater();               // fires on document.ready
            $("#search").keyup(function() {
                ajaxSearchUpdater();           // your function call
            });
            $("#edulevel").click(function() {
                ajaxSearchUpdater();           // your function call
            });
        });
    </script>

这是我的表是userres.php

<html>
<head>
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/jquery.tablesorter.pager.css">
<link rel="stylesheet" href="css/jquery.dataTables.min.css">
<!----
---->
<script type="text/javascript" src="js/jquery-latest.js"></script> 
<script type="text/javascript" src="js/jquery.tablesorter.js"></script> 
<script type="text/javascript" src="js/jquery.tablesorter.pager.js"></script> 
<script type="text/javascript" src="js/jquery.dataTables.min.js"></script> 


<script type="text/javascript">
    $(function() 
    { 
        $("#myTable")
        .tablesorter({widthFixed: true, widgets: ['zebra']})
        .tablesorterPager({container: $("#pager")}); 
    } 
    ); 
</script>

</head>

<?php

require("common.php"); 
error_reporting( error_reporting() & ~E_NOTICE );


//print_r($_GET);
$q=$_POST['q'];
if(isset($_POST['e'])){
    $e=$_POST['e'];
    //echo $q;
    //echo $e;
}

echo '<div id="pager" class="pager">
    <form>
        <img src="css/first.png" class="first"/>
        <img src="css/prev.png" class="prev"/>
        <input type="text" class="pagedisplay"/>
        <img src="css/next.png" class="next"/>
        <img src="css/last.png" class="last"/>
        <select class="pagesize">
            <option value="">LIMIT</option>
            <option value="2">2 per page</option>
            <option value="5">5 per page</option>
            <option value="10">10 per page</option>

        </select>
    </form>
</div>';

if($stmt->rowCount() > 0){
    $r=$stmt->fetchAll();
    echo "<table class='tablesorter-blackice' id='myTable' style='width:97%; table-border: 1'>";
        echo "<thead>";
        echo "<tr>";
        echo "<th>No.</th>";
        echo "<th>No.Matric</th>";
        echo "<th>Name</th>";
        echo "<th>Programme</th>";
        echo "<th>Title</th>";
        echo "<th>Education Level</th>";
        echo "<th>Serial Number</th>";
        echo "<th>Availability</th>";
        echo "</tr>";
        echo "</thead>";
        echo "<tbody>";

    foreach($r as $row){

            echo "<tr align='center'><td>". ($a+1) ."</td><td>". $row['matricno'] ."</td><td>". $row['studentname'] ."</td><td>". $row['programme'] ."</td><td>". $row['title'] ."</td><td>". $row['education_level'] ."</td><td>". $row['serialno'] ."</td><td>". $row['bavailable'] ."</td></tr>";
            $a++;
            //echo $row['education_level'];
    }
    echo "</tbody>";
    echo "</table>";
}
else{
    echo "<p align='center'>Nothing to show you :( I am really sorry for this T_T </p>";
}

?>

我对数据库没有任何问题。只有在我从函数中删除$(Document).ready....时才会发生这种情况,因为有些教程没有使用它,而有些则没有。有什么线索我想念吗?
*注意:我故意不包括我的查询,因为评论和内容太多。另外,我在两个页面上都调用tablesorter是因为我不确定哪个页面应该调用tablesorter函数。这是因为我的表在php文件上。不是HTML

参考方案

我已经通过在userres.php中手动创建它来解决它。我认为它不起作用是因为自从我在index.php中使用Ajax向userres.php请求数据。因此,返回的数据将成为DOM(即文档对象模型),并且与HTML有关(如果有人可以比我更好地阐明这一点,我会很高兴)。所以我必须创建这样的手册。 (数学资料T_T)

在userres.php中执行查询后开始

$stmt2 = $db->prepare($totalrow); 
$stmt2->bindValue(':q','%'.$q.'%');
$stmt2->bindValue(':e',$e);
$stmt2->execute();

$row = $stmt2->rowCount();

$limitrow = 1;
if(isset($_POST['pagelim'])){
    $limitrow = $_POST['pagelim'];

    if($limitrow == 0){
        $limitrow = $row;
    }

}


if($row != 0){
    $baki = $row%$limitrow;
}
else{
    $baki = 0;
    $limitrow = 1;
    $row = 1;
}

$maxpage = (($row-$baki)/$limitrow);
$startrow = $limitrow*($pageno-1);

if($baki!=0)
    $maxpage++;

----然后另一个查询----我排除了查询

下面的代码是对页面编号进行动画处理并对其进行自定义。

$startPage = ($pageno <5) ? 1 : $pageno -4;
$endPage = 8 + $startPage;
$endPage = ($maxpage < $endPage) ? $maxpage : $endPage;
$diff = $startPage - $endPage + 8;
$startPage -=($startPage - $diff > 0) ? $diff : 0;

$a = $startPage;
echo "<ol id='olpoint'>";


if($startPage > 1) echo "<a href='#' onclick='ajaxSearchUpdater(1);'><li>First</li></a>";

while($a<=$endPage){

        echo "<a href='#' onclick='ajaxSearchUpdater(".$a.");'";
        if($pageno == $a){
            echo "style='color:grey;'";
        }   
        echo "><li>".$a."</li></a>";
        $a++;
};

if($endPage < $maxpage) echo "<a href='#' onclick='ajaxSearchUpdater(".$maxpage.");'><li>End</li></a>";

echo "</ol>";

对于我的index.php,我这样说

function ajaxSearchUpdater(p){
        $("#result").show();
        var x = $("#search").val();
        var y = $("#edulevel").val();
        var pagelim = $("#pagefpe").val();
        var pagenumber = p;

        $.ajax({
            type:'POST',
            url:'userres.php',
            data:'q='+x+'&e='+y+'&pagelim='+pagelim+'&pageno='+pagenumber,
            cache:false,
            success:function(data){
                $("#result").html(data)
            }
        });
    }

    $(document).ready(function(e) {
        ajaxSearchUpdater(1);               // fires on document.ready
        $("#search").keyup(function() {
            ajaxSearchUpdater(1);           // your function call
        });
        $("#edulevel").click(function() {
            ajaxSearchUpdater(1);           // your function call
        });
        $("#pagefpe").click(function() {
            ajaxSearchUpdater(1);           // your function call
        });
    });

注意:就性能而言,我可能不会说这是最好的解决方案,因为即使我自己也不了解Ajax和DOM。另外,在此userres.php内部,我使用了大量查询,而在查询内部还有另一个查询。所以我认为它不是很好。关键是,无论性能如何,我都需要使此分页正常工作,但是如果有更好的方法,我希望任何人都可以提供更多:)。

代码未在服务器目录php中创建文件 - php

我正在尝试使用以下代码将新文件写入服务器error_reporting(E_ALL); ini_set('display_errors', 1); if($_SERVER['REQUEST_METHOD'] == "POST") { $html = $_POST['html'];…

CodeIgniter更新查询被执行两次 - php

我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…

故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php

我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…

通过php表单修改我的xml文件 - php

这是我的xml文件和下面的php代码。我输入了一个输入类型,它将按名字搜索学生。然后将显示有关特定学生的信息,并且将显示另一个按钮更新。问题是我想在那之后修改信息。如何通过标签名称获取元素,以便可以修改有关特定学生的信息?<students> <student> <firstname>John</firstname&…

在ajax之后将页面内容复制到同一页面 - php

我有简单的注册公式,我希望首先使用ajax发送,而不刷新页面以控制是否插入正确的数据,然后仅重定向到其他页面。问题是,当我通过ajax将其发送到同一页面后,一切正常,但是页面内容重复,我可以看到两次...这是我的ajaxfunction registruj () { var name = $('#meno').val(); var pri…