我的这个表有复选框,我的想法是能够删除已选中复选框的行。
在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
传递它吗?
答案 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 :(得分: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>';
}