隐藏表中的列

时间:2013-12-18 18:53:27

标签: php html

我的这个表有复选框,我的想法是能够删除已选中复选框的行。

在Charaf jra的帮助下,我能够POST行的uniqID,所以我可以在我的delete.php页面上使用mysql查询DELETE

我现在的问题是为了传递uniqID我必须将它添加到表上,这看起来不太好。我的意思是,我不想在桌子上显示身份证号码。我一直在阅读如何隐藏它,但我读过的解释都不适用于我的情况。

这是我的代码更新:

if ($arch = $pdo->prepare("SELECT name, age, uniqID FROM table WHERE id = ?")) { 
  $arch ->execute(array($id));
  $data = $arch->fetchAll();  
  echo '<div class="coolTable" ><form method="post" action="delete.php"><table><tr><td>Name</td><td>Age</td><td>Check</td></tr>';
    foreach ($data as $row){
    echo '<tr>';
      foreach ($row as $col){
      $col=nl2br($col);
      echo '<td>'.$col.'</td>';
      }
    echo '<td><input type="checkbox" name="checkbox[]" value="'.$col.'" id="checkbox"></td>'; //this captures the column ID so I can pass it through the `POST`
    echo '</tr>';
    }
  echo '</table><input type="submit" value="Delete Selected"/></form></div>';
}

这很完美。唯一的大问题是我不希望显示uniqID。任何人都可以告诉我如何将其从表格中隐藏起来并仍然可以通过POST传递它吗?

2 个答案:

答案 0 :(得分:1)

if ($arch = $pdo->prepare("SELECT name, age, uniqID FROM table WHERE id = ?")) { 
  $arch ->execute(array($id));
  $data = $arch->fetchAll();  
  echo '<div class="coolTable" ><form method="post" action="delete.php"><table><tr><td>Name</td><td>Age</td><td>Check</td></tr>';
    foreach ($data as $row){
    echo '<tr>';
      echo '<td>'.nl2br($row['name']).'</td>';
      echo '<td>'.nl2br($row['age']).'</td>';
      echo '<td><input type="checkbox" name="checkbox[]" value="'.nl2br($row['uniqID']).'" id="checkbox"></td>'; //this captures the column ID so I can pass it through the `POST`
    echo '</tr>';
    }
  echo '</table><input type="submit" value="Delete Selected"/></form></div>';
}

PHP数组可以用作字典(如果你看过python或ruby)。 PDO返回一对键值对数组,其中您的键是列的名称和值,即列的值。因此,您可以通过

访问这些值
  1. 迭代(foreach)
  2. iteration(索引 - 如果你知道元素在数组中的位置,则直接访问)
  3. 键(直接访问,不知道元素在数组中的位置)

答案 1 :(得分:1)

假设您要循环每行中的列,而不是像alkis建议的那样手动回显它们,将结果作为关联数组然后取消设置$ row ['uniqID'];

if ($arch = $pdo->prepare("SELECT name, age, uniqID FROM table WHERE id = ?")) { 
    $arch ->execute(array($id));
    $data = $arch->fetch(PDO::FETCH_ASSOC);  
    echo '<div class="coolTable" ><form method="post" action="delete.php"><table><tr><td>Name</td><td>Age</td><td>Check</td></tr>';
    foreach ($data as $row){
        if ( isset($row['uniqID']) ) {
            unset($row['uniqID']);  
        }
        echo '<tr>';
        foreach ($row as $col){
            $col = nl2br($col);
             echo '<td>'.$col.'</td>';
        }
        echo '<td><input type="checkbox" name="checkbox[]" value="'.$col.'" id="checkbox"></td>'; //this captures the column ID so I can pass it through the `POST`
        echo '</tr>';
    }
    echo '</table><input type="submit" value="Delete Selected"/></form></div>';
}