过滤动态填充的表

时间:2013-06-05 01:57:05

标签: php javascript

我的表格在我的页面上有一个排序选项。我正在使用SELECTWHERE从数据库中选择表的数据现在我知道您只需在脚本中AND之后添加WHERE即可从中删除更少的行桌子。

我需要脚本最初从表中提取所有信息,然后如果用户使用该按钮选择某个状态,脚本将再次运行,并仅显示该特定状态的任务。

以下是将要排序的按钮:

<div class="btn-group"> 
     <button class="btn">All</button> 
 <button class="btn dropdown-toggle" data-toggle="dropdown"> 
    <span class="caret"></span>
 </button> 
 <ul class="dropdown-menu"> 
    <li><a href="#">All</a></li>
    <li><a href="#">In Progress</a></li>
    <li><a href="#">Done</a></li>
    <li class="divider"></li>
    <li><a href="#">New task</a></li>
    <li><a href="#">Overdue Task</a></li>
 </ul>
</div>

这是实际的表脚本:

<?php
$con=mysqli_connect();
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM affiliate_tasks WHERE username = '$_SESSION[username]' ");

echo "<table class='table table-message'>
<tr class='heading'>
<td class='cell-title'>Tasks</td> 
<td class='cell-status hidden-phone hidden-tablet'>Status</td> 
<td class='cell-time align-right'>Due Date</td>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr class='task'>";
  echo "<td class='cell-ttle'>" . $row['task_name'] . "</td>";
  echo "<td class='cell-status hidden-phone hidden-tablet'>"  . $row['status'] . "</td>";
  echo "<td class='cell-time align-right'>" . $row['due_date'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysqli_close($con);
?>

我在想我们需要在这条线上添加一些内容,但我不确定。

$result = mysqli_query($con,"SELECT * FROM affiliate_tasks WHERE username = '$_SESSION[username]' ");

这是javascript的工作吗?或者它是我们可以添加到PHP脚本的东西?

如果不是按钮,我们做了类似的事情:

<select id="sort-selection" class="btn"> 
 <option value="all">All</option>
 <option value="pending">Pending</option>
 <option value="in_progress">In Progress</option> 
 <option value="done">Done</option>
</select>

2 个答案:

答案 0 :(得分:1)

它只是伪代码,因为您的按钮不是表单的一部分,代码中没有$_POST,并且AND之后没有信息(在您的代码中)在查询中添加的内容(column_name =值)

$query = "SELECT * FROM affiliate_tasks WHERE username = '$_SESSION[username]'";

if( isset($_POST['sort-selection'] && $_POST['sort-selection'] != 'all' ) ) {
     $query .= " AND status = '". $_POST['sort-selection']."';" ;
}

$result = mysqli_query($con, $query);

答案 1 :(得分:0)

我会使用Javascript来做到这一点,但你必须在用PHP构建行时标记你的行,可能是通过为每行添加一个类来指示它正在显示的任务的状态。然后在Javascript中,您只需根据用户输入显示/隐藏不同的类。