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

PHP实现点击链接发送带参数GET请求求助

实现方法

方法1:直接用a标签跳转(最简单,适合新手)

你现在的代码里a标签没闭合,也没输出链接文本,而且没必要用onclick,直接把href设成目标URL就行,还得对$value做URL编码(因为有空格这类特殊字符),避免URL出错。

修改后的递归函数:

function display_array_recursive($json_rec){
    if($json_rec){
        foreach($json_rec as $key=> $value){
            if(is_array($value)){
                display_array_recursive($value);
            }else{
                // 对value做URL编码,处理空格等特殊字符
                $encodedValue = urlencode($value);
                // 输出完整的a标签,href直接指向目标接口
                echo '<a href="http://localhost/api/ticket/' . $encodedValue . '">' . htmlspecialchars($value) . '</a><br>';
            }
        }
    }
}
  • urlencode($value):把VS Code fehlt转成VS+Code+fehlt,符合URL规范
  • htmlspecialchars($value):防止XSS,比如如果value里有<这类字符,转义后不会破坏HTML结构

点击这个链接就会直接发送GET请求到http://localhost/api/ticket/你的值,浏览器会跳转过去。

方法2:用JS发送AJAX GET请求(不跳转页面)

如果不想跳转页面,要异步发送请求,那得先把你的test函数写出来,同时注意PHP输出JS时的字符串转义(避免引号冲突):

首先修改PHP里的a标签输出:

function display_array_recursive($json_rec){
    if($json_rec){
        foreach($json_rec as $key=> $value){
            if(is_array($value)){
                display_array_recursive($value);
            }else{
                // 用json_encode转义JS字符串,避免引号、换行等问题
                $jsValue = json_encode($value);
                echo '<a href="#" onclick="test(' . $jsValue . '); return false;">' . htmlspecialchars($value) . '</a><br>';
            }
        }
    }
}

然后在HTML里加JS的test函数:

function test(value) {
    // 编码value,构造URL
    const encodedValue = encodeURIComponent(value);
    const url = `http://localhost/api/ticket/${encodedValue}`;
    
    // 用fetch发送GET请求
    fetch(url)
        .then(response => {
            if (!response.ok) {
                throw new Error('请求失败');
            }
            return response.json(); // 如果接口返回JSON,解析它
        })
        .then(data => {
            console.log('请求成功', data);
            // 这里可以加请求成功后的操作,比如提示用户
        })
        .catch(error => {
            console.error('请求出错', error);
        });
}
  • return false;:阻止a标签默认的跳转行为
  • encodeURIComponent(value):和PHP的urlencode作用类似,处理URL里的特殊字符
  • fetch是现代浏览器的API,如果要兼容老浏览器,可以用XMLHttpRequest替代

别忘了解析JSON字符串

你拿到的是JSON格式的字符串,得先转成PHP数组才能传给递归函数:

$jsonStr = '[{"betreff":"h"},{"betreff":"VS Code fehlt"}]';
$jsonArray = json_decode($jsonStr, true); // 第二个参数true转成关联数组
display_array_recursive($jsonArray);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:45:15