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

PHP中点击提交按钮后如何获取携带id的radio单选框name属性值

实现方法

推荐优先使用第一种方案,代码更简洁易维护:

方案1:优化前端name属性,后端直接读取

修改前端表单中radio的name属性,改用数组格式绑定问题ID:
将原代码中所有radio的name="radio_<?= $question['id'] ?>"替换为:

name="answer[<?= $question['id'] ?>]"

后端forms/handle-questions.php直接获取数组即可,不需要额外做字符串解析:

<?php
if (isset($_POST['handle_questions'])) {
    // 直接获取所有问题的回答,数组结构为 问题ID => 用户选择的评分(good/medium/weak)
    $answerList = $_POST['answer'] ?? [];
    foreach ($answerList as $questionId => $rating) {
        // 此处编写将$questionId和$rating存入数据库的逻辑即可
    }
}
?>

方案2:不修改前端代码,后端解析name属性

如果不想改动现有前端代码,可以在后端遍历POST参数,匹配radio_前缀的字段名提取ID:

<?php
if (isset($_POST['handle_questions'])) {
    $answerList = [];
    foreach ($_POST as $postKey => $rating) {
        // 匹配前缀为radio_的参数
        if (strpos($postKey, 'radio_') === 0) {
            // 截取前缀后的部分得到问题ID
            $questionId = substr($postKey, 6);
            $answerList[$questionId] = $rating;
        }
    }
    // 遍历$answerList即可得到所有问题的回答数据
}
?>

如果你的PHP版本 >= 8.0,也可以用str_starts_with($postKey, 'radio_')替代strpos判断,可读性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 04:36:04