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

在PHP控制器动态HTML中插入PHP变量的实现问题

问题分析与解决方法

你的问题出在动态拼接HTML字符串时错误嵌套了PHP代码——当前你把<?php echo "$id"?>作为字符串内容直接输出到HTML里,而PHP不会再次解析这段嵌套的代码,导致浏览器拿到的就是这段文本,提交后自然无法正确传递ID值。

正确的实现方式

直接在PHP字符串中嵌入$id变量即可,不需要再写PHP标签:

$body .= ' <form method="get">
               <input type="hidden" name="leave" value="' . $id . '"> 
               <input type="submit" value="Leave">
           </form>';

或者使用双引号字符串(注意调整属性的引号包裹方式,避免语法错误):

$body .= " <form method='get'>
               <input type='hidden' name='leave' value='$id'> 
               <input type='submit' value='Leave'>
           </form>";

原代码无效的原因

你原代码里的<?php echo "$id"?>会被当作普通文本直接输出到HTML中,最终生成的HTML代码是:

<input type="hidden" name="leave" value="<?php echo "$id"?>">

浏览器解析时会把<?php作为value的起始内容,所以提交后$_GET['leave']拿到的就是<?php,这和你日志里的结果完全一致。

额外安全提示

如果$id是用户输入或不可信来源的数据,建议使用htmlspecialchars()转义,防止XSS攻击:

$body .= ' <form method="get">
               <input type="hidden" name="leave" value="' . htmlspecialchars($id) . '"> 
               <input type="submit" value="Leave">
           </form>';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:55:40