0

これはこれと同様の質問です:Mysql PHPで生成されたテーブル:Tablesorterでは機能しません

ただし、わずかな違いが1つあります。外部ファイルではなく、同じファイルに直接テーブルを生成するため.load、オプションではありません。

私のコード:

<html>
 <head>
  <title>Tablesorter testing page</title>

  <link rel="stylesheet" href="style.css" type="text/css"/>

  <script src="jquery.js" type="text/javascript"></script>
  <script src="jquery.tablesorter.js" type="text/javascript"></script>
  <script type="text/javascript">
    $(document).ready(function() { 
        $("#races").tablesorter();
    }); 
  </script>
 </head>
<body>
 <?php
    $db = new mysqli("localhost", "user", "password", "database");

    $query = "SELECT name, date FROM races";

    $result = $db->query($query, MYSQLI_STORE_RESULT);

    $o = '<table id="races"><thead><tr><th>Name</th><th>Date</th></tr></thead><tbody>';

    while(list($name, $date) = $result->fetch_row()) {
        $o .= '<tr><td>'.$name.'</td><td>'.$date.'</td></tr>';
    }

    $o .= '</tbody></table>';

    echo $o;
?>
</body>
</html>

問題は、Tablesorterが空のテーブルで呼び出されたかのように、テーブルがフォーマットされていないことです。HTMLテーブルをハードコーディングすると、Tablesorterはその上で問題なく動作します。

それで、どうすればそれを機能させることができますか?

編集:以下は生成された.htmlコードです

<html>
     <head>
      <title>Tablesorter testing page</title>

      <link rel="stylesheet" href="style.css" type="text/css"/>

      <script src="jquery.js" type="text/javascript"></script>
      <script src="jquery.tablesorter.js" type="text/javascript"></script>
      <script>
        $(document).ready(function() { 
            $("#races").tablesorter();
        }); 
      </script>
     </head>
    <body>
     <table id="races">
<thead><tr><th>Name</th><th>Date</th></tr></thead>
<tbody><tr><td>Race 1</td><td>2012-01-01</td></tr><tr><td>Race 2</td><td>2012-01-01</td></tr></tbody></table>
</body>
</html>
4

1 に答える 1

1

この行を置き換えます:

<table id="races">

と:

<table id="races" class="tablesorter">

私もこのjqueryプラグインを使用していますが、このCSSクラスをテーブルに追加するまでこの問題が発生していました。CSSファイルにテーブルソーターCSSクラスのCSSコードが含まれていることを確認する必要があります。

于 2012-08-02T09:54:28.853 に答える