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

PHP项目分类操作提示异常:点击按钮同时显示两类成功信息

问题解决:点击对应按钮仅显示分类操作的对应成功提示

问题原因

你当前的代码中,添加分类和删除分类模块都使用了同一个$_GET['ok']参数触发成功提示,没有区分操作类型。只要URL中存在ok参数,两个模块的成功提示都会被渲染,导致点击任意按钮后两个提示同时显示。

解决方案

给不同操作设置唯一标识参数,后端跳转时传递对应标识,前端根据标识判断显示对应提示。

步骤1:修改后端跳转逻辑

在addcategory_steps.php(添加分类处理页)中,添加成功后跳转时传递add_ok参数:

// 添加成功后的跳转示例
header("Location: 你的当前页面.php?add_ok=1");
exit();

在deletecategory_steps.php(删除分类处理页)中,删除成功后跳转时传递delete_ok参数:

// 删除成功后的跳转示例
header("Location: 你的当前页面.php?delete_ok=1");
exit();

如果需要区分错误类型,也可以把通用的error参数拆分为add_error和delete_error,按需调整。

步骤2:修改前端判断逻辑

调整页面中的提示模块,分别根据对应标识参数判断是否显示:

<main>
    <section class="category__title-container">
        <h1 class="category__title">
            Add Category
        </h1>
    </section>
    <section class="error">
        <?php
            if(isset($_GET['error']))
            {
                echo '<font color="red">'.$_GET['error'].'</font>';
                echo '<br><br>';
            }
                                
            if(isset($_GET['add_ok']))
            {
                echo '<font color="blue">Category successfully added!</font>';
                echo '<br><br>';
            }
                            
        ?>
    </section>
    <section class="add_information-section">
        <form action="addcategory_steps.php" method="post">
            <div class="add_information grid">
                <div class="add_information-box">
                    <h1 class="add_information-title">
                         Category Name
                    </h1>
                    <input type="text" name="category_name" id="" placeholder="category_name">
                </div>
                
                <div class="add_information-box">
                    <h1 class="add_information-title">
                         Category Image
                    </h1>
                    <input type="text" name="category_image" id="" placeholder="category_image">
                </div>
                
            </div>
            <input type="submit" value="Add Category" class="button">
        </form>
    </section>

    <section class="category__title-container">
        <h1 class="category__title">
            Delete Category
        </h1>
    </section>
    <section class="error">
        <?php
            if(isset($_GET['error']))
            {
                echo '<font color="red">'.$_GET['error'].'</font>';
                echo '<br><br>';
            }
                                
            if(isset($_GET['delete_ok']))
            {
                echo '<font color="blue">Category successfully deleted!</font>';
                echo '<br><br>';
            }
                            
        ?>
    </section>
    <section class="add_information-section">
        <form action="deletecategory_steps.php" method="post">
            <div class="add_information grid">
                <div class="add_information-box">
                    <h1 class="add_information-title">
                         Category Name
                    </h1>
                    <input type="text" name="category_name" id="" placeholder="category_name">
                </div>
                
                <div class="add_information-box">
                    <h1 class="add_information-title">
                         Category Image
                    </h1>
                    <input type="text" name="category_image" id="" placeholder="category_image">
                </div>
                
            </div>
            <input type="submit" value="Delete Category" class="button">
        </form>
    </section>
</main>

(注:原代码中重复了<main>标签,已修正为单个<main>包裹所有内容)

补充说明

如果需要更精准的错误提示,可以将通用error参数拆分为add_error和delete_error,这样添加操作出错时仅在添加模块显示错误,删除操作出错时仅在删除模块显示错误,进一步优化用户体验。

内容的提问来源于stack exchange,提问作者Ng Ji Seng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:45:49