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

如何在PHP中实现「按钮值===元素ID」时修改对应元素?

问题解决方法

核心错误修正

你的PHP代码存在逻辑错误:isset($_POST['expand'])==='id'中,isset()返回的是布尔值(true/false),不能直接和字符串'id'比较。正确逻辑是先确认$_POST['expand']存在,再将它的值与当前循环的$row['id']做对比。

修正后的PHP代码

<?php
// 初始化默认样式参数
$ariabool = "true";
$gridclass = "gridhidden";

// 检查是否有POST提交的expand参数
if(isset($_POST['expand'])) {
    // 需在遍历SQL结果的循环内执行此判断,匹配当前行的id
    $submitted_id = $_POST['expand'];
    if($submitted_id === $row['id']) {
        $gridclass = 'gridexpanded';
        $ariabool = 'false';
    }
}
?>

关键注意事项

  • 上述PHP代码必须放在遍历SQL查询结果的循环内部,才能逐个判断每个$row['id']是否与提交的按钮value匹配。
  • HTML中的PHP变量需要用echo输出,否则变量无法被解析,修正后的HTML片段如下:
<div class='kagrid' >
    <div class='griddisplay'>
        <img src="<?php echo $row['img']; ?>" />
        <h2><?php echo $row['name']; ?></h2>
        <div><?php echo $row['primpro']; ?></div>
        <a href="<?php echo $row['src']; ?>">Image Source</a>
        <!-- 按钮需包裹在form内才能触发POST提交 -->
        <form method="post" action="">
            <button type='submit' class='expand' name='expand' value="<?php echo $row['id']; ?>"></button>
        </form>
    </div>
    <div id="<?php echo $row['id']; ?>" class='<?php echo $gridclass; ?>' aria-hidden='<?php echo $ariabool; ?>'>
        <!-- 内容省略 -->
    </div>
</div>
  • 作为SQL注入测试站点,建议对提交的参数做安全处理,避免XSS风险:
$submitted_id = isset($_POST['expand']) ? htmlspecialchars($_POST['expand'], ENT_QUOTES) : '';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:15:31