我在这个主板上看到过这样的问题,但没有一个与我的情况完全一致,所以在你读完我的问题之前请不要让我失望。
我有一张桌子。表的每一个都有一个与mysql数据库中的字段匹配的id。当你点击th时,我想按照desc的方向对数据库进行查询。如果再次单击相同的字段,我希望查询按asc方向排序。
问题在于维持各州的方向价值。到目前为止,单击表格标题时方向不会改变。
任何人都可以告诉我我做错了什么吗?
HTML:
<div id="content"></div>
jquery的:
$(document).ready(function() {
loadData();
});
function loadData(orderby) {
$.ajax({
url: 'display.php',
type: "POST",
data: ({orderby: orderby, direction: 'desc'}),
success: function(data){
$("#content").hide();
$("#content").html(data);
$("#content").show();
$('th').click(function(){
var orderby = $(this).attr('id');
loadData(orderby);
});
}
});
}
PHP:
$db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (mysqli_connect_errno()) {
printf("Connect failed: %s", mysqli_connect_error());
exit;
}
if(isset($by) and $by==" ASC"){
$by=" DESC";
}else{
$by=" ASC";
}
if (isset($_POST["orderby"])) {
$orderby = $_POST["orderby"];
//echo $orderby;
}
//build a query on the database
$q = "Select * from uncompensated";
if (isset($_POST["orderby"])) {
$q .= " order by " . $orderby;
} else {
$q .= ' order by year2013';
}
if (isset($by)) {
$q .= $by;
echo $q;
} else {
$by = ' DESC';
$q .= $by;
echo $q;
}
//echo $q;
$result = $db->query($q);
echo "<table cellspacing='0' >";
echo "<tr id='header'><th id='Name'>Name</th><th id='year2013'>2013</th><th id='year2012'>2012</th><th id='year2011'>2011</th><th id='year2010'>2010</th><th id='year2009'>2009</th><th id='year2008'>2008</th><th id='year2007'>2007</th><th id='year2006'>2006</th><th id='year2005'>2005</th><th id='year2004'>2004</th><th id='year2003note'>* 2003</th><th id='year2002'>2002</th><th id='year2001'>2001</th><th id='year2000'>2000</th><th id='year1999'>1999</th><th id='year1998'>1998</th><th id='year1997'>1997</th></tr>";
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
(code)
}