[英]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.