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

无法将下拉选择框(select)的选项设置为只读状态的问题求助

核心问题

HTML 原生的 <select> 标签不支持 readonly 属性,你给 <option> 加 readonly 也不会生效,这是代码失效的根本原因。另外你原代码中 foreach 循环结束后缺少闭合的 <?php } ?>,也会触发语法错误。

解决方案

根据实际需求,推荐两种实现方式:

方式1:保留提交能力,同时禁止修改

如果需要表单提交时正常传递 complain_form 的值,可以给 <select> 加 disabled 属性,同时新增一个隐藏的 <input> 存储对应的值(disabled 状态的表单元素不会被默认提交),修正后代码如下:

<?php 
if($_SESSION['id'] == $all_information['complain_from']){ ?>
    <!-- 隐藏域负责提交值 -->
    <input type="hidden" name="complain_form" value="<?php echo $all_information['complain_from']; ?>">
    <select class="custom-select" disabled>
        <option selected><?php echo $_SESSION['real_name']; ?></option>
    </select>
<?php }else{ ?>
    <select name="complain_form" class="custom-select">
        <option value="" disabled selected>Select a name</option>
<?php
foreach($all_account_info as $account_info){ ?>
        <option value="<?php echo $account_info['id']; ?>" <?php if($all_information['complain_from'] == $account_info['id']){ echo 'selected="selected"'; } ?>>
<?php 
    echo $account_info['real_name']; 
?>
        </option>
<?php } ?>
    </select>
<?php } ?>

方式2:直接展示文本,无需下拉交互

如果只是需要展示固定的选中值,不需要用户操作下拉,直接渲染纯文本即可,不需要加载下拉框组件:

<?php 
if($_SESSION['id'] == $all_information['complain_from']){ ?>
    <input type="hidden" name="complain_form" value="<?php echo $all_information['complain_from']; ?>">
    <div class="custom-select"><?php echo $_SESSION['real_name']; ?></div>
<?php }else{ ?>
    <select name="complain_form" class="custom-select">
        <option value="" disabled selected>Select a name</option>
<?php
foreach($all_account_info as $account_info){ ?>
        <option value="<?php echo $account_info['id']; ?>" <?php if($all_information['complain_from'] == $account_info['id']){ echo 'selected="selected"'; } ?>>
<?php 
    echo $account_info['real_name']; 
?>
        </option>
<?php } ?>
    </select>
<?php } ?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:05