2017-09-14 24 views
0

我創建了一個函數list_product顯示列表產品。

我想在列表產品上的每個產品上都有一個按鈕delete

但我不能得到$id刪除。

有沒有方法可以刪除列表數據庫上的行?

我的函數的樣子:

<?php 

function product_list() { 
    ?> 
    <div class="wrap"> 
     <?php 
     global $wpdb; 
     $table_name = $wpdb->prefix . "product"; 
     if (isset($_POST['delete'])) { 
      $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE id = %s", $id)); 
     } else { 
      $rows = $wpdb->get_results("SELECT id,name from $table_name"); 
     } 
     ?> 
     <table> 
      <tr> 
       <th>ID</th> 
       <th>Name</th> 
      </tr> 
      <?php foreach ($rows as $row) { ?> 
       <tr> 
        <td><?php echo $row->id; ?></td> 
        <td><?php echo $row->name; ?></td> 
        <td><a href="<?php echo admin_url('admin.php?page=product_update&id=' . $row->id); ?>">Cập nhật</a></td> 
        <td><input type='submit' name="delete" value='Delete' class='button' onclick="return confirm('&iquest; Confirm Delete?')"></td> 
       </tr> 
      <?php } ?> 
     </table> 
    </div> 
    <?php 
} 

感謝。

+0

您是否試過使用$ _GET變量而不是$ _POST變量。 $ _GET ['id'] –

+0

而不是$ row-> id寫入$ row-> ID –

回答

0

我不是一個真正的PHP專家,但我認爲這是發生了什麼。
您不在任何地方發送$id變量。另外,你的代碼中沒有任何形式。由於您沒有使用JS提交,因此沒有任何提交。

請嘗試下面的代碼。

<?php 

function product_list() { 
    ?> 
    <div class="wrap"> 
     <?php 
     global $wpdb; 
     $table_name = $wpdb->prefix . "product"; 
     if(isset($_POST['row_id'])){ 
      $id = $_POST['row_id']; 
      $id = $id[0]; 
     }else{ 
      $id = ''; 
     } 
     if (isset($_POST['delete'])) { 
      $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE id = %s", $id)); 
     } else { 
      $rows = $wpdb->get_results("SELECT id,name from $table_name"); 
     } 
     ?> 
<form method="post"> 
     <table> 
      <tr> 
       <th>ID</th> 
       <th>Name</th> 
      </tr> 
      <?php foreach ($rows as $row) { ?> 
       <tr> 
        <td><?php echo $row->id; ?></td> 
        <td><?php echo $row->name; ?></td> 
        <td><a href="<?php echo admin_url('admin.php?page=product_update&id=' . $row->id); ?>">Cập nhật</a></td> 
        <td> 
         <input type="hidden" name="row_id[]" value="<?php echo $row->id; ?>"> 
         <input type='submit' name="delete" value='Delete' class='button' onclick="return confirm('&iquest; Confirm Delete?')"> 
        </td> 
       </tr> 
      <?php } ?> 
     </table> 
</form> 
    </div> 
    <?php 
}