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

点击删除后$_GET['clothCatId']丢失引发未定义索引错误如何解决

问题原因
  1. 删除按钮的跳转链接仅携带了delproduct参数,没有保留当前URL中的clothCatId参数,导致删除跳转后页面无法识别当前分类ID
  2. 原有获取分类产品的条件判断逻辑存在错误,使用||逻辑符,当clothCatId未传入时,第二个判断条件直接访问未定义的数组索引会触发报错
修复方案

步骤1:修改删除按钮链接,保留clothCatId参数

生成删除链接时,把当前页面的clothCatId拼接进URL,代码修改为:

<a onclick="return confirm('Are you sure to delete ?')" href="?delproduct=<?php echo $result['productId'];?>&clothCatId=<?php echo $_GET['clothCatId'];?>">Delete</a>

修改后跳转的URL会同时携带delproduct和clothCatId两个参数,不会丢失分类ID。

步骤2:修复获取产品列表的判断逻辑

把原有错误的||逻辑替换为更安全的!empty()判断,同时避免未定义索引报错:

// !empty会同时判断参数存在且不为空,不会触发未定义索引报错
if(!empty($_GET['clothCatId'])){
        $id = $_GET['clothCatId'];
        $getProduct = $product->getAllProductByCategory($id); 
}

可选优化:删除完成后跳转避免重复提交

当前删除逻辑放在页面顶部,用户删除后刷新页面会重复触发删除操作,建议删除完成后主动跳转回当前分类的列表页,代码修改为:

if(isset($_GET['delproduct']) && !empty($_GET['clothCatId'])){
    $id = $_GET['delproduct'];
    $delProduct = $product->delProductById($id);
    // 删除完成后跳转,避免刷新重复提交
    header("Location: listProduct.php?clothCatId=".$_GET['clothCatId']);
    exit();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:48:04