You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP无复选框时点击编辑/删除按钮无法获取对应ID的问题排查

解决你的编辑/删除按钮无法获取对应行ID的问题

看起来你的代码里有几个小细节问题导致了当前的异常,我来一步步帮你修正:

1. 修复页面渲染的语法错误与结构问题

你在隐藏输入框的写法上犯了语法错误,多打了一个闭合标签的>,导致value属性跑到了输入框外面,所以页面会显示value="1">这类多余文本。另外,删除按钮的表单里没有携带对应行的ID,还有同一行里两个元素重复使用了row_id这个id属性(虽然不影响功能,但不符合规范)。

同时注意:你原来的代码会给每一行数据生成一个独立的<table>标签,这不是正确的表格结构,我把<table>移到了循环外面。

修正后的列表渲染代码:

<?php 
$conn=mysqli_connect('localhost','root','','admin'); 
$sql="SELECT * FROM admin"; 
$result=mysqli_query($conn,$sql); 
?> 
<table> 
<?php while($row=$result->fetch_assoc()) { 
    $id=$row['id']; 
    $name=$row['name']; 
    $email=$row['email']; 
?> 
    <tr>
        <td><?php echo $id ?></td>
        <td><?php echo $name ?></td>
        <td><?php echo $email ?></td>
        <td>
            <form action="111.php" method="post">
                <!-- 修正隐藏输入框的语法,移除多余的>,去掉重复id -->
                <input type="hidden" name="row_id" value="<?php echo $id ?>">
                <input type="submit" name="edit" value="edit">
            </form>
        </td>
        <td>
            <form action="111.php" method="post">
                <!-- 给删除表单添加携带ID的隐藏输入框 -->
                <input type="hidden" name="row_id" value="<?php echo $id ?>">
                <input type="submit" name="delete" value="delete">
            </form>
        </td>
    </tr> 
<?php } ?>
</table> 

2. 修复处理页面(111.php)的逻辑问题

你的删除分支里尝试echo $name,但这个变量根本没有定义,同时最好增加对row_id是否存在的判断,避免出现未定义变量的警告。

修正后的处理代码:

<?php 
if(isset($_POST['edit'])) { 
    if(isset($_POST['row_id'])) {
        $id=$_POST['row_id']; 
        echo "要编辑的ID是:" . $id; 
    } else {
        echo "未获取到目标ID";
    }
} 
if(isset($_POST['delete'])) { 
    if(isset($_POST['row_id'])) {
        $id=$_POST['row_id']; 
        echo "要删除的ID是:" . $id; 
        // 这里可以添加实际删除数据库数据的代码(记得防SQL注入):
        // $conn=mysqli_connect('localhost','root','','admin');
        // $safe_id = mysqli_real_escape_string($conn, $id);
        // $sql = "DELETE FROM admin WHERE id = $safe_id";
        // mysqli_query($conn, $sql);
    } else {
        echo "未获取到目标ID";
    }
} 
?>

现在再测试一下:页面渲染时不会再显示多余的文本,点击编辑或删除按钮就能正确打印对应行的ID了。

内容的提问来源于stack exchange,提问作者Mazhar Hussain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:22:11