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

PHP多提交按钮操作时状态变量互斥被重置问题咨询

问题原因

  • 状态没有持久化存储:你每次请求执行脚本时都直接将$damen、$herren初始化为0,也没有把修改后的状态存入已开启的SESSION中,所以每次点击按钮提交请求后,之前的状态都会被重置,仅当前点击按钮对应的变量会被修改,另一个变量保持初始化的0值。
  • 判断逻辑互斥:你使用elseif串联所有按钮的判断逻辑,意味着每次请求只会触发第一个匹配到的条件,即使后续还有符合的条件也不会执行,进一步阻断了两个状态独立修改的可能。

修复方案

把状态存入SESSION持久化,同时拆分互斥的判断逻辑即可,修正后的代码如下:

<?php
session_start();
$arbeit = $_GET["arbeit"];
echo "Angelegte Prüfung:  ";
echo $arbeit;

// 仅首次访问时初始化状态,后续从SESSION读取
if (!isset($_SESSION['damen'])) {
    $_SESSION['damen'] = 0;
}
if (!isset($_SESSION['herren'])) {
    $_SESSION['herren'] = 0;
}

// 拆分判断逻辑,两个状态独立修改,不用elseif互斥
if (array_key_exists('add_Fem',$_POST)) {
    $_SESSION['damen'] = 1; // BESETZT DAMEN
}
if (array_key_exists('sub_Fem',$_POST)) {
    $_SESSION['damen'] = 0; // Reset counter
}
if (array_key_exists('add_Mal',$_POST)) {
    $_SESSION['herren'] = 1; // BESETZT HERREN
}
if (array_key_exists('sub_Mal',$_POST)) {
    $_SESSION['herren'] = 0; // Reset counter
}

// 读取SESSION中的状态赋值给变量
$damen = $_SESSION['damen'];
$herren = $_SESSION['herren'];
?>

<form method='post'>
    <input name='add_Fem' type="submit" value='Damen' class="button">
</form>
<form method='post'>
    <input name='sub_Fem' type="submit" value='Reset Damen' class="button">
    <h3><em>
            <?php
            if ($damen == 1) {
                echo "DAMEN BESETZT!";
            } else {
                echo "DAMEN FREI!";
            }
            ?>
        </em></h3>
</form>
<form method='post'>
    <input name='add_Mal' type="submit" value='Herren' class="button">
</form>
<form method='post'>
    <input name='sub_Mal' type="submit" value='Reset Herren' class="button">
    <h3><em>
            <?php
            if ($herren == 1) {
                echo "HERREN BESETZT!";
            } else {
                echo "HERREN FREI!";
            }
            ?>
        </em></h3>
</form>

补充说明

你之前用isset也没解决的核心原因就是没有把状态存在SESSION里,每次请求都会重置初始值,和用isset还是array_key_exists没有关系,只要把状态持久化到SESSION中,两个判断函数都可以正常使用。

内容的提问来源于stack exchange,提问作者dr.gonzo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:45:03