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

PHP中向href插入变量失效,寻求技术解决方案

解决PHP循环中链接变量传递的问题

嘿,刚接触PHP碰到这种字符串拼接的坑太正常了,别纠结!我看了你的代码,主要是字符串拼接和引号嵌套的问题,导致变量没正确传递,我帮你修正一下:

问题分析

你的代码里有两个明显的语法错误:

  • 链接的href属性引号嵌套错误:href='details_get.php?id='$r['Post_ID']这里,第一个单引号在?id=后就闭合了,后面的$r['Post_ID']变成了无效的HTML语法,自然传不了变量。
  • 价格那一行的&...是笔误,应该用.来连接字符串,而且末尾的引号位置也不对。

修正后的代码

这里给你两种写法,选哪种都可以:

写法1:继续用单引号拼接字符串

<?php foreach($arr as $r) { 
    echo "<tr>";
    echo "<td>".$r['TimeStamp']."</td>";
    echo "<td>".$r['LocationName']."</td>";
    // 修正href的引号和变量拼接:把$r['Post_ID']用.连接到字符串里,同时补全引号
    echo "<td><a href='details_get.php?id=".$r['Post_ID']."'>".$r['Title']."</a></td>";
    // 修正Price行的连接符和引号
    echo "<td>".$r['Price']."</td>";
    echo "</tr>";
} ?>

写法2:用双引号简化拼接(更直观)

PHP里双引号包裹的字符串会自动解析变量,写法更简洁:

<?php foreach($arr as $r) { 
    echo "<tr>";
    echo "<td>{$r['TimeStamp']}</td>";
    echo "<td>{$r['LocationName']}</td>";
    // 双引号里直接用{$变量}的形式解析数组元素,不用手动拼接
    echo "<td><a href=\"details_get.php?id={$r['Post_ID']}\">{$r['Title']}</a></td>";
    echo "<td>{$r['Price']}</td>";
    echo "</tr>";
} ?>

小提示

以后写PHP输出HTML的时候,要么严格用.拼接字符串,注意引号的开闭;要么用双引号包裹,用{$变量}的形式嵌入数组或对象变量,这样不容易出错~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:00:36