0

我正在制作一个在<td>标签中使用 PHP 的表格。这包含产品列表及其价格。在表格的顶部,我插入了两个按钮,一个用于按价格升序排列数据,另一个用于降序排列。

默认情况下,数据按升序排列。当我单击降序按钮时,它可以工作,但是不需要更改表数据。

这是我的 CSS 代码:

a {text-decoration:none; color:#0000FF;}
#hold .log {
  color:#0000FF;
   text-align:center;
   font-size:20px;
}

h2 {color:#0000FF;}
#left { width:200px;border:1px;border-style:solid;margin:0 auto;margin-top:20px;text-align:center;border-    color:#0000FF;float:left;}
#left div {border:1px;border-style:solid;border-color:#0000FF;}
#left div a {}
.style table {border:1px;border-style:solid;border-color:#0000FF;}
.style table tr td {border:1px;border-style:solid;border-color:#0000FF;color:#333;width:250px;}
.style table tr td input,select,textarea {width:250px;height:30px;}

这是表格的代码:

<button onclick="as()">Ascending Order</button>
<button onclick="ds()">Descding Order</button>

<div class="style">
<table>
<tr>
<td>Title</td>
    <td>Price</td>
</tr>
<th><h2 style="text-align:left;">Cameras</h2></th>
<tr>    
  <?php $i=1;
        $qry_cam=mysql_query("SELECT* FROM camera ORDER BY camera.price ASC",$con);
        while($row=mysql_fetch_array($qry_cam))
        {
          echo "<tr id='cam_as'>
                  <td>$i-$row[title]<br /></td>
                  <td>$row[price]<br /></td>
                </tr>";
          $i++;
        }
  ?>
</tr>
<tr>    
  <?php $i=1;
        $qry_cam=mysql_query("SELECT* FROM camera ORDER BY camera.price DESC",$con);
        while($row=mysql_fetch_array($qry_cam))
        {
          echo "<tr id='cam_ds' style='display:none;'>
                  <td>$i-$row[title]<br /></td>
                  <td>$row[price]<br /></td>
                </tr>";
          $i++;
        }
  ?>

</tr>
</table>
</div><!-- style ends-->

最后,这是执行所有必需工作的脚本:

<script type="text/javascript">

  function as()
  {
    $('#cam_as,#com_as,#cell_as').css('display','block');
    $('#cam_ds,#com_ds,#cell_ds').css('display','none');    
  }

  function ds()
  {
    $('#cam_ds,#com_ds,#cell_ds').css('display','block');
    $('#cam_as,#com_as,#cell_as').css('display','none');
  }

</script>

我已经尝试过,但我无法找到我哪里出错了。

4

2 回答 2

0

你的代码有足够的问题。我删除了额外的 < tr >。我添加了类并相应地更改了javascript函数。你的问题主要出在嵌套<tr>的

http://jsfiddle.net/Sanya_Zol/kC9Tk/

<button onclick="as()">Ascending Order</button>
<button onclick="ds()">Descding Order</button>

<div class="style">
<table>
<tr>
<td>Title</td>
    <td>Price</td>
</tr>
<th><h2 style="text-align:left;">Cameras</h2></th>

<?php $i=1;
    $qry_cam=mysql_query("SELECT* FROM camera ORDER BY camera.price ASC",$con);
    while($row=mysql_fetch_array($qry_cam))
    {
      echo "<tr class='cam_as'>
              <td>$i-$row[title]<br /></td>
              <td>$row[price]<br /></td>
            </tr>";
      $i++;
    }
?>

<?php $i=1;
    $qry_cam=mysql_query("SELECT* FROM camera ORDER BY camera.price DESC",$con);
    while($row=mysql_fetch_array($qry_cam))
    {
      echo "<tr class='cam_ds' style='display:none;'>
              <td>$i-$row[title]<br /></td>
              <td>$row[price]<br /></td>
            </tr>";
      $i++;
    }
?>

</table>
</div>


<script type="text/javascript">
function as(){
    $('.cam_as,#com_as,#cell_as').show();
    $('.cam_ds,#com_ds,#cell_ds').hide();
}

function ds(){
    $('.cam_ds,#com_ds,#cell_ds').show();
    $('.cam_as,#com_as,#cell_as').hide();
}
$(as); // run as() when document ready
</script>
于 2013-03-27T10:43:28.133 回答
0

<tr>循环内外都有标签,你只需要一次。该循环还会创建多个<tr>具有相同 ID 的标签,这是不正确的。尝试使用jQuery-Toggle显示/隐藏元素。

问题的最后一部分对我来说不清楚,对不起。

于 2013-03-27T10:30:39.587 回答