繁体   English   中英

为什么在 wordpress 中刷新页面时最后一行被删除

[英]Why last row deleted when refresh page in wordpress

当我刷新页表行时,当我单击其他行的任何删除按钮时,删除了最后一个查询。 为什么会这样? 这是我展示的表格

<?php
global $wpdb;
$table= 'wp_contact_form';
$result = $wpdb->get_results ( "SELECT * FROM $table" );

if(!empty($result)){

foreach ( $result as $print ) {  
        
?>
<tr>
<td><?php echo $print->id;?></td>
<td><?php echo $print->names;?></td>
<td><?php echo $print->emails;?></td>
<td><?php echo $print->gender;?></td>
<td><?php echo $print->age;?></td>
<td><input type="submit" value="Edit" id="" name="update"></td>
<td><input type="submit" value="delete" id="delete" name="delete"></td>
</tr>
<?php
}
} 
?>

这是删除查询

$id= $print->id;
if(isset($_POST['delete']))
{
    $result = $wpdb->delete($table, array('id' => $id));
    if(!empty($result))
    {
        echo "success";
    }
}

错误截图 - https://prnt.sc/wdg3xv

如果设置了 $_POST['delete'],您没有指定应该删除哪个 ID,现在您要求 WP 只删除一些内容。

您需要将您的元素包装在一个表单中,并添加一个包含您要删除的元素的确切 ID 的字段,如下所示:

<td>
  <input type="submit" name="delete" value="delete" />
  <input type="hidden" name="targetItem" value="<?php echo $print->id;?>" />
</td>

然后在您的 PHP 中使用该字段的 ID 将其从数据库中删除:

if (isset($_POST['delete']))
    $result = $wpdb->delete($table, array('id' => $_POST['targetItem']));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM