2017-09-14 44 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 
}