jquery表分类器问题


jquery tablesorter problem

你好我昨天在这里得到了一些帮助,因为我有一个问题。如果我自己运行后端查询,它会显示结果。但我从下拉列表中的另一个页面调用它,它显示所有记录,并且在firebug中没有看到任何错误。我哪里错了?感谢

这段代码是独立运行的。

getuserlog.php

<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("sample", $con);
$sql="SELECT * FROM logger_log WHERE idusr_log = '".$q."' order by datein_log desc";
$result = mysql_query($sql);
echo "<table id='"userlog'" class='"tablesorter'" cellspacing='"1'">
<thead>
<tr>
<th align='"left'">Ip Address</th>
<th align='"left'">Date In</th>
<th align='"left'">Date Out</th>
</tr>
</thead>";
    echo "<tbody>";
while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['ip_log'] . "</td>";
  echo "<td>" . date('d/m/Y H:i:s',strtotime($row['datein_log'])) . "</td>";
  echo "<td>" . date('d/m/Y H:i:s',strtotime($row['dateout_log'])) . "</td>";
  echo "</tr>";
  }
   echo"</tbody>";
echo "</table>";

mysql_close($con);
?>
<div id="pager" class="pager">
    <form>
        <img src="css/blue/first.png" class="first"/>
        <img src="css/blue/prev.png" class="prev"/>
        <input type="text" class="pagedisplay"/>
        <img src="css/blue/next.png" class="next"/>
        <img src="css/blue/last.png" class="last"/>
        <select class="pagesize">
            <option selected="selected"  value="10">10</option>
            <option value="20">20</option>
            <option value="30">30</option>
            <option  value="40">40</option>
        </select>
    </form>
</div>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.pager.js"></script>
<link href="css/blue/style.css" rel="stylesheet" type="text/css" />
        <script>
        $(function() {
        $("#userlog")
            .tablesorter({widthFixed: true, widgets: ['zebra']})
            .tablesorterPager({container: $("#pager")});
    });
        </script>

这就是我调用它的页面。

userlog.php

<script type="text/javascript">
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
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("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getuserlog.php?q="+str,true);
xmlhttp.send();
}
</script>
<div class="spacer"></div>
<div class="userlogTxt">This report shows all users who have logged in up until: <?php echo date("d/m/Y H:i:s"); ?></div>
        <br />
        <?php
            $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
            mysql_select_db("sample") or die(mysql_error());
            $result2 = mysql_query('SELECT * FROM user_usr ORDER BY name_usr ASC', $conn);
            echo '<select name="users" onchange="showUser(this.value)">';
            echo '<option value="selected">'. 'Select a user' . '</option>';
            while ($row = mysql_fetch_assoc($result2))
            {
            echo '<option value="'.$row['id_usr'].'">'.$row['name_usr'].'</option>';
            }
            echo '</select>';
        ?>
    <br /><br />
<div id="txtHint" class="userlogTxt">Logging information will be shown here.</div></div>

@inti

它没有从数据库中提取任何日期。只显示标题和寻呼机。

userlog.php

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.pager.js"></script> 
<link href="css/blue/style.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript">     
    function showUser(str)     
        {  
            $.get("getuserlog.php?q="+str,function(response) {
                $("#txtHint").html(response);
            // Tablesorter will run, just after you loaded the ajax response             
            $("#userlog").tablesorter({widthFixed: true, widgets: ['zebra']})
            .tablesorterPager({container: $("#pager")
            });         
                });     
        }
</script> 
<div class="spacer"></div>
<div class="userlogTxt">This report shows all users who have logged in up until: <?php echo date("d/m/Y H:i:s"); ?></div>
        <br />
        <?php
            $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
            mysql_select_db("sample") or die(mysql_error());
            $result2 = mysql_query('SELECT * FROM user_usr ORDER BY name_usr ASC', $conn);
            echo '<select name="users" onchange="showUser(this.value)">';
            echo '<option value="selected">'. 'Select a user' . '</option>';
            while ($row = mysql_fetch_assoc($result2))
            {
            echo '<option value="'.$row['id_usr'].'">'.$row['name_usr'].'</option>';
            }
            echo '</select>';
        ?>
    <br /><br />
<div id="txtHint" class="userlogTxt">Logging information will be shown here.</div></div>

getuserlog.php

<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("sample", $con);
$sql="SELECT * FROM logger_log WHERE idusr_log = '".$q."' order by datein_log desc";
$result = mysql_query($sql);
echo "<table id='"userlog'" class='"tablesorter'" cellspacing='"1'">
<thead>
<tr>
<th align='"left'">Ip Address</th>
<th align='"left'">Date In</th>
<th align='"left'">Date Out</th>
</tr>
</thead>";
    echo "<tbody>";
while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['ip_log'] . "</td>";
  echo "<td>" . date('d/m/Y H:i:s',strtotime($row['datein_log'])) . "</td>";
  echo "<td>" . date('d/m/Y H:i:s',strtotime($row['dateout_log'])) . "</td>";
  echo "</tr>";
  }
   echo"</tbody>";
echo "</table>";

mysql_close($con);
?>
<div id="pager" class="pager">
    <form>
        <img src="css/blue/first.png" class="first"/>
        <img src="css/blue/prev.png" class="prev"/>
        <input type="text" class="pagedisplay"/>
        <img src="css/blue/next.png" class="next"/>
        <img src="css/blue/last.png" class="last"/>
        <select class="pagesize">
            <option selected="selected"  value="10">10</option>
            <option value="20">20</option>
            <option value="30">30</option>
            <option  value="40">40</option>
        </select>
    </form>
</div>

我哪里错了?感谢

我建议您在userlog.php中使用jQuery Ajax函数,由于getuserlog.php中的脚本是常量,请将其移动到userlog.php,如下所示:

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.pager.js"></script>
<link href="css/blue/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
    function showUser(str)
    {
        $.get("getuserlog.php?q="+str,function(response) {
            $("#txtHint").html(response);
            // Tablesorter will run, just after you loaded the ajax response
            $("#userlog").tablesorter({widthFixed: true, widgets: ['zebra']})
                         .tablesorterPager({container: $("#pager")});
        });
    }
</script>

编辑:将所有javascript放到主页面中。ajax响应应该只包含您想要从服务器获取的数据。