2016-11-19 2 views
0

Мне очень жаль мой плохой английский и такой Основной вопрос. Я хотел бы задать вопрос:Как удалить строку таблицы с кнопкой Delete

Предполагая, что я отобразил таблицу с шестью столбцами и строками значений. В конце столбцов у меня есть «Option Title», а строки имеют опцию «DELETE Button».

Как это: Полной таблица

enter image description here

То, что я хочу, когда я нажимаю на кнопку Удалить все значения на выбранные строках полностью удалены.

Как это: После удаления

enter image description here

Вот мой PHP и HTML код:

<tbody> 
    <tr> 
     <?php 
      while($getdata = mysqli_fetch_array($result)) 
      { 
      echo"<td>".$getdata['x_id']."</td>"; 
      echo"<td>".$getdata['x_title']."</td>"; 
      echo"<td>".$getdata['x_track']."</td>"; 
      echo"<td>".$getdata['x_tag']."</td>"; 
      echo"<td>".$getdata['x_model']."</td>"; 
      echo'<td><img class="img-table-thumbnail" src="'.$getdata['x_thumb'].'"></td>'; 
      echo'<td><a type="button" class="btn btn-sm btn-default" href="'.$getdata['x_link'].' " target="_BLANK">VISIT</a></td>'; 
      echo'<td><form action="delete.php" method="post" enctype="multipart/form-data"> 
      <button type="submit" name="deleteData" class="btn-sm btn-primary"><i class="fa fa-times-circle" aria-hidden="true"></i></button> 
      </form></td>'; 
      echo "</tr>"; 
      } 

      //$result = mysqli_query($db_connect,$sql); 

      $db_connect->Close(); 
      ?> 
    </tbody> 

и delete.php:

$id = (int)$_GET['id']; 

$update = $db_connect->prepare("DELETE FROM $db_table WHERE id = ?"); 
$update->bind_param('i', $id); 
$update->execute(); 
$update->close(); 


header("location:index.php"); 
?> 

Нужна помощь и заранее спасибо за любые ответы.

+0

Мне не хватает, где вы отправляете $ _GET ['id'] в свой HTML. В delete.php $ id, какое значение получает $ id? –

+0

Вы должны включить идентификатор в форму, потому что теперь он ничего не публикует. Но вы также можете вставить скрытый ввод в форму, значение которой задается с помощью java-скрипта, щелкнув, например, идентификатор строки. Во-вторых, '$ _POST'! =' $ _GET' – Xorifelse

+0

Возможно, я пропустил $ _GET ['id'], но когда я перехожу к $ _GET ['x_id'], все равно ничего не происходит. @ Антонио Мило –

ответ

0

Пожалуйста, попробуйте код ниже:

ПРИМЕЧАНИЕ: Я не видел полный код, но я изменил код, где есть неправильные задания/декларации. Вы можете чувствовать себя свободно подстраивать код

<tbody> 
<tr> 
    <?php 
     while($getdata = mysqli_fetch_array($result)) 
     { 
      echo"<td>".$getdata['x_id']."</td>"; 
      echo"<td>".$getdata['x_title']."</td>"; 
      echo"<td>".$getdata['x_track']."</td>"; 
      echo"<td>".$getdata['x_tag']."</td>"; 
      echo"<td>".$getdata['x_model']."</td>"; 
      echo'<td><img class="img-table-thumbnail" src="'.$getdata['x_thumb'].'"></td>'; 
      echo'<td><a type="button" class="btn btn-sm btn-default" href="'.$getdata['x_link'].' " target="_BLANK">VISIT</a></td>'; 
      echo'<td><form action="delete.php" method="post" enctype="multipart/form-data"> 
      <button type="submit" name="deleteData" class="btn-sm btn-primary" value=".$getdata['x_id']."><i class="fa fa-times-circle" aria-hidden="true"></i></button> 
      </form></td>'; 
      echo "</tr>"; 
     } 

     //$result = mysqli_query($db_connect,$sql); 

     $db_connect->Close(); 
    ?> 

Delete.php

$id = (int)$_POST['deleteData']; 

$update = $db_connect->prepare("DELETE FROM $db_table WHERE id = ?"); 
$update->bind_param('i', $id); 
$update->execute(); 
$update->close(); 


header("location:index.php"); 
?> 
0

, которые вы используете POST, как requestmethod на delete.php. Таким образом, вы получаете свой идентификатор $ _POST ['id'], а не $ _GET ['id']. Но в вашем случае у вас нет элемента управления формой, который поддерживает это значение.

См $_POST и $_GET

Теперь у вас есть два варианта.

1.) Измените форму, переименовав кнопку в «id» и установите для нее атрибут value в $ getdata ['your_field_with_id']. Внутри delete.php вам нужно изменить $ _GET ['id'] в $ _POST ['id'], потому что вы отправляете formdata по POST, а не GET.

echo ' 
<td> 
    <form action="delete.php" method="post" enctype="multipart/form-data"> 
     <button type="submit" name="id" value="', $getdata['your_field_with_id'], '" class="btn-sm btn-primary"> 
      <i class="fa fa-times-circle" aria-hidden="true"></i> DELETE 
     </button> 
    </form> 
</td>'; 

2.) Заменить седловины с формой со следующим кодом

echo ' 
<td> 
    <a href="delete.php?id=', $getdata['your_field_with_id'], '" class="btn btn-sm btn-primary"> 
     <i class="fa fa-times-circle" aria-hidden="true"></i> DELETE 
    </a> 
</td>'; 

Как вы можете видеть, что я удалить форму заменить его на простой ссылки, которая содержит идентификатор запись.

Лично я предпочел бы второе решение по сравнению с первым.

Смежные вопросы