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

点击链接显示带结果的放大文本框及PHP数组未定义变量报错求助

嘿,我来帮你搞定这两个问题!先从你遇到的PHP错误说起,再处理点击链接显示放大文本框的需求~

一、解决PHP中Undefined variable: arr的错误

你遇到这个错误主要有两个原因:

  1. 函数内部的$arr是局部变量,函数外部的代码无法直接访问它。你调用getAns($result)后,没有把函数返回的数组赋值给外部的$arr;
  2. 如果传入的$result既不是1也不是2,函数里的$arr根本没被定义,返回时就会触发未定义变量的提示。

这里是修复后的代码,我加了注释说明:

<?php 
$result = 1; 

function getAns($result){
    // 先给$arr设置默认值,避免$result不符合条件时变量未定义
    $arr = [];
    if($result == 1){
        $arr = array("1"=>"A","2"=>"B");
    } elseif($result == 2){
        $arr = array("1"=>"D","2"=>"E");
    }
    return $arr;
}

// 把函数返回的数组赋值给外部的$arr变量
$arr = getAns($result);
print_r($arr); 
?>

这样修改后,不管$result是什么值,$arr都会有定义,而且外部也能拿到函数返回的数组了。

二、实现点击链接显示放大文本框的功能

这个功能可以用HTML+CSS+JavaScript来实现,核心思路是默认隐藏放大文本框,点击链接时显示它,点击关闭按钮或页面其他区域时隐藏。

以下是完整的实现代码:

<!DOCTYPE html>
<html>
<head>
    <style>
        /* 放大文本框的样式 */
        .modal {
            display: none; /* 默认隐藏 */
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.5); /* 半透明背景 */
        }
        .modal-content {
            background-color: white;
            margin: 15% auto;
            padding: 20px;
            border: 1px solid #888;
            width: 70%;
            max-width: 600px;
            font-size: 1.2em; /* 放大文本 */
            position: relative;
        }
        .close-btn {
            color: #aaa;
            float: right;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
        }
        .close-btn:hover {
            color: black;
        }
    </style>
</head>
<body>
    <!-- 触发链接 -->
    <a href="#" id="showModalLink">点击查看放大结果</a>

    <!-- 放大文本框 -->
    <div id="resultModal" class="modal">
        <div class="modal-content">
            <span class="close-btn">&times;</span>
            <p>这里是你要显示的放大结果内容~</p>
            <p>可以是从PHP返回的数组内容,比如:A、B</p>
        </div>
    </div>

    <script>
        // 获取元素
        const link = document.getElementById('showModalLink');
        const modal = document.getElementById('resultModal');
        const closeBtn = document.querySelector('.close-btn');

        // 点击链接显示文本框
        link.addEventListener('click', function(e){
            e.preventDefault(); // 阻止链接默认跳转行为
            modal.style.display = "block";
        });

        // 点击关闭按钮隐藏文本框
        closeBtn.addEventListener('click', function(){
            modal.style.display = "none";
        });

        // 点击文本框外部区域隐藏文本框
        window.addEventListener('click', function(e){
            if(e.target == modal){
                modal.style.display = "none";
            }
        });
    </script>
</body>
</html>

你可以把文本框里的内容换成PHP动态生成的结果,比如把PHP返回的数组用json_encode转成JSON,再用JavaScript解析显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:37:12