2013-12-18 2 views
1

У меня есть эта таблица с флажками, моя идея - удалить строки, в которых были отмечены флажки.Хранение столбца из таблицы

С помощью Charaf jra я смог POST uniqID строки, чтобы я мог DELETE использовать mysql-запрос на моей странице delete.php.

Моя проблема теперь в том, чтобы передать uniqID Мне пришлось добавить его на стол, который не выглядит хорошо. Я имею в виду, я не хочу, чтобы ID-номер показывался на столе. Я читал о том, как скрыть это, но ни одно из объяснений, которые я прочитал, не относится к моему делу.

Вот мой код обновлен:

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?

+1

Будет ли скрытое поле работы: '<входной тип = "скрытый" имя = "что-то" значение = ""/>'? – newfurniturey

+1

Помните его цикл foreach, с которым я занимаюсь, поэтому, если я добавлю этот код, я бы спрятал каждый $ col – azirion

+0

. В этом случае, чего именно вы пытаетесь достичь? Вы хотите только * скрытых скрытых идентификаторов ID, все они, один из них? Если ответ не «все», вам нужно добавить оператор 'if' или два (в ожидании, что это вы на самом деле после). – newfurniturey

ответ

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 возвращает массив ключей key-value, где ваш ключ - это имя вашего столбца и значение, значение вашего столбца. Таким образом, вы можете получить доступ к этим значению с помощью

  1. итерации (Еогеасп)
  2. итерации (индекс - прямой доступ, если вы знаете, положение вашего элемента внутри массива)
  3. ключа (прямой доступ, не зная положение ваш элемент внутри массива)
1

Предполагая, что вы хотите, чтобы петли столбцов в каждой строке, в отличие от ручной вторя им, как следует Алкис, получить результаты в виде ассоциативного массива, а затем снята с охраны $ строки [ «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>'; 
} 
Смежные вопросы