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

如何获取datalist选中项对应关联数组值并打印课程描述

问题原因

你当前的代码未对用户选中值做匹配判断,foreach会遍历关联数组的所有键值对,所以会输出全部课程内容。关联数组支持直接通过键名访问对应值,无需遍历即可快速拿到选中课程的描述。

修复方案

替换原PHP代码段即可,修改后完整代码如下:

<label for="course">Choose a course:</label>
<input list="courseOptions" id="course" name="course">
<datalist id="courseOptions">
    <option value="COMP1230">
    <option value="COMP2129">
    <option value="COMP2147">
    <option value="COMP2130">
    <option value="COMP2138">
    <option value="GSSC1054">    
</datalist>
<?php
$courseList = [
    "COMP1230" => "Advanced Web Development",
    "COMP2129" => "Advanced Object-Oriented Programming",
    "COMP2147" => "System Analysis, Design & Testing",
    "COMP2130" => "Application Development Using Java",
    "COMP2138" => "Advanced Database Development",
    "GSSC1054" => "Forensic Psychology"
];

// 接收表单提交的选中课程编码,兼容GET/POST提交
$selectedCode = isset($_REQUEST['course']) ? trim($_REQUEST['course']) : '';

// 合法性校验后输出内容
if (!empty($selectedCode) && isset($courseList[$selectedCode])) {
    echo "<div> Course Name: {$courseList[$selectedCode]} </div>";
}
?>

可选的foreach实现(不推荐,性能低于直接键访问)

如果你一定要用foreach实现,只需要在循环中增加匹配判断,匹配到后直接跳出循环即可:

foreach($courseList as $code => $name){
    if ($code === $selectedCode) {
        echo "<div> Course Name: $name </div>";
        break;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:18:03