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

如何用PHP接收Bootstrap中select multiple的多选值?

解决Bootstrap多选select提交仅显示"Array"的问题

这是表单提交数组数据时很常见的小坑,我帮你拆解问题原因和解决步骤:

1. 先修正HTML里的select标签

你需要给select的name属性加上[],这样浏览器才会把选中的多个值以数组形式提交给PHP。比如补全你的代码片段:

<form action="send-mail.php" method="POST" class="contact_box">
  <div class="panel-body">
    <div class="form-group">
      <div class="input-group">
        <span class="input-group-addon"><i class="..."></i></span>
        <!-- 关键:name属性要写成类似selected_options[]的形式 -->
        <select multiple class="form-control" name="selected_options[]">
          <option value="option1">选项1</option>
          <option value="option2">选项2</option>
          <option value="option3">选项3</option>
        </select>
      </div>
    </div>
    <!-- 其他表单元素和提交按钮 -->
  </div>
</form>

如果没加[],PHP要么只收到最后一个选中的选项,要么当你尝试输出这个变量时,因为它是数组类型,就会直接显示"Array"字符串。

2. 在PHP里正确处理数组数据

在send-mail.php中,你不能直接把数组塞进邮件或者echo输出——PHP遇到这种情况就会显示"Array"。你需要把数组转换成可读的格式,比如用implode()把数组元素拼接成字符串:

// 先判断数据是否存在且是数组
if (isset($_POST['selected_options']) && is_array($_POST['selected_options'])) {
    // 用逗号分隔每个选中的选项,也可以换成换行、分号等其他分隔符
    $selected_items = implode(', ', $_POST['selected_options']);
} else {
    $selected_items = '未选择任何选项';
}

// 然后在邮件内容里使用这个字符串
$email_content = "用户选中的选项:\n" . $selected_items;

// 后续执行邮件发送逻辑...

3. 额外排查点

  • 确认表单的method是POST,和PHP里的$_POST变量对应;
  • 如果用AJAX提交表单,要确保AJAX代码正确处理数组(比如用serialize()或者FormData,不要手动拼接字符串导致数组结构丢失);
  • 检查PHP的max_input_vars配置,防止选项过多时数据被截断(一般默认配置足够日常使用)。

这样处理后,你就能收到实际的选中值,而不是"Array"字样了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:51:31