2011-02-09 2 views
0

Извините, если это любительский вопрос. Я пытаюсь заставить плагин JQuery Tablesorter работать с таблицей, сгенерированной PHP из базы данных MySql. На данный момент я не могу заставить сортировку работать. Я думаю, что это что-то связано с последовательностью работы javascript и php и, возможно, потребуется реализовать обратный вызов в javascript или что-то в этом роде. Во всяком случае код у меня есть:JQuery Table Sorter - связанный с PHP

<html> 
<head> 
<script src="jquery/jquery.js" type="text/javascript"></script> 
<script src="jquery/jquery.tablesorter.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() 
    { 
     $("#table1").tablesorter({ sortlist: [0,0] }); 
    }); 
</script> 
</head> 
<body> 

<?php 
$con = mysql_connect("localhost","root","root"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("Database1", $con); 

$result = mysql_query("SELECT * FROM PlayerStats1 WHERE G>2 LIMIT 0,20"); 

echo "<table id=\"table1\" class=\"tablesorter\" border=1px> 
<caption align=top>Stats</caption> 
<thead> 
<tr> 
<th width=90px>Forename</th> 
<th width=90px>Surname</th> 
<th width=50px>Team</th> 
<th width=40px>G</th> 
<th width=50px>RPG</th> 
<th width=50px>APG</th> 
<th width=50px>TOPG</th> 
<th width=50px>BPG</th> 
<th width=50px>SPG</th> 
<th width=50px>PPG</th> 
</tr> 
</thead>"; 

while($row = mysql_fetch_array($result)) 
    {  
    echo "<tbody>"; 
    echo "<tr>"; 
    echo "<td>" . $row['FORENAME'] . "</td>"; 
    echo "<td>" . $row['SURNAME'] . "</td>"; 
    echo "<td align='center'>" . $row['TEAM'] . "</td>"; 
    echo "<td align='center'>" . $row['G'] . "</td>"; 
    echo "<td class='col1' align='center'>" . $row['RPG'] . "</td>"; 
    echo "<td class='col2' align='center'>" . $row['APG'] . "</td>"; 
    echo "<td class='col3' align='center'>" . $row['TOPG'] . "</td>"; 
    echo "<td class='col4' align='center'>" . $row['BPG'] . "</td>"; 
    echo "<td class='col5' align='center'>" . $row['SPG'] . "</td>"; 
    echo "<td class='col6' align='center'><b>" . $row['PPG'] . "</b></td>"; 
    echo "</tr>"; 
    echo "</tbody>"; 
    } 
echo "</table>"; 

mysql_close($con); 
?> 

</body> 
</html> 

Если это случай реализации вызова назад- любое руководство/код будет высоко ценится.

+0

Не думайте, что это связано с проблемой, но: '' неверный код. Он должен быть либо '' (без 'px'), либо' '(используя' style' с единицами в 'px'). Код, который у вас есть, может работать, но также может вызывать проблемы и, безусловно, не соответствует стандартам, поэтому может переключать браузеры в режим причуд. – Spudley

ответ

0

Не имеет никакого отношения к последовательности; ваш браузер выполняет Javascript, и, насколько это известно, PHP-сгенерированный HTML такой же, как любой HTML, поэтому тот факт, что он создан, не имеет значения. Я предлагаю вам включить режим отладки в tablesorter и использовать Firebug и посмотреть, освещает ли это проблему, иначе я не вижу на первый взгляд, что может вызвать проблемы. Не то, чтобы этого не было, я просто пропустил его. :)

0

Тег Tbody следует вызывать только один раз и за пределами вашей петли TR. TBody - это уникальная коллекция из всех элементов TR тела вашего тела. это идет к jack tablesorter.

+0

Хорошая мысль, я не поймал, что кто-то внутри петли. Да, выложите это снаружи, это, вероятно, запутывает табличный принтер. Использование нескольких твинов может быть полезным, но, вероятно, не в этом случае. – Andrew

Смежные вопросы