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

PHP中$_GET无法与<a>链接传值问题排查求助

问题分析与解决方法

你的问题主要出在两个核心点:

  1. PHP字符串解析错误:输出的URL出现.$row[这类未解析的代码片段,说明循环里的<a>标签字符串拼接/变量嵌入写法有误,PHP没有正确解析$row数组变量。
  2. 参数名不匹配:你在edit.php里用$_GET["id"]获取参数,但URL里的参数是row_id,两者名称不一致,自然无法获取到对应值。

错误写法示例(导致URL异常的常见情况)

你大概率写出了类似这样的代码:

echo '<a href="edit.php?row_id=.$row['id']">Edit</a>';

单引号包裹的字符串内部,PHP不会解析变量,.$row['id']会被直接当作纯文本输出,就会出现你看到的错误URL。

正确写法参考

方式1:双引号嵌入变量(推荐,代码简洁)

用双引号包裹整个HTML片段,数组变量用{$row['字段名']}的格式嵌入,同时修正参数名和edit.php里的$_GET对应:

// 传递员工ID,参数名用id,对应edit.php的$_GET["id"]
echo "<a href='edit.php?id={$row['id']}'>Edit</a>";
echo "<a href='delete.php?id={$row['id']}'>Delete</a>";

// 如果要传递员工Name,参数名改成name,edit.php里用$_GET["name"]获取
echo "<a href='edit.php?name={$row['name']}'>Edit</a>";

方式2:单引号拼接字符串

把变量从单引号字符串中拆分出来,用.连接,注意引号闭合避免冲突:

echo '<a href="edit.php?id=' . $row['id'] . '">Edit</a>';
echo '<a href="delete.php?id=' . $row['id'] . '">Delete</a>';

方式3:HEREDOC语法(适合多HTML内容输出)

如果循环里要输出整行表格内容,HEREDOC能避免引号混乱,让代码更清晰:

while ($row = mysqli_fetch_assoc($result)) {
    echo <<<HTML
    <tr>
        <td>{$row['name']}</td>
        <td>
            <a href="edit.php?id={$row['id']}">Edit</a>
            <a href="delete.php?id={$row['id']}">Delete</a>
        </td>
    </tr>
HTML;
}

额外注意事项

  • 确认$row数组里确实存在你要传递的字段(比如id或name),避免出现Undefined index错误。
  • 如果传递的是员工Name这类可能包含特殊字符的内容,建议用urlencode()处理,避免URL截断或参数错误:
    echo "<a href='edit.php?name=" . urlencode($row['name']) . "'>Edit</a>";
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:15:38