首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP设置多选择下拉列表

PHP设置多选择下拉列表
EN

Stack Overflow用户
提问于 2014-10-08 16:24:35
回答 1查看 1.5K关注 0票数 1

我正在从我的数据库中提取数据,以检索为多选择下拉列表选择的多个选项。我尝试将这些值重置为已选择的值,但它仅选择其中之一。

数据库中的数组:

代码语言:javascript
复制
[data] => SimpleXMLElement Object
        (
            [term] => LTA
            [prevention] => SimpleXMLElement Object
                (
                    [reason] => Array
                        (
                            [0] => SimpleXMLElement Object
                                (
                                    [process] => Recruitment
                                    [processID] => 4
                                )

                            [1] => SimpleXMLElement Object
                                (
                                    [process] => People Management
                                    [processID] => 3
                                )

                            [2] => SimpleXMLElement Object
                                (
                                    [process] => Not Applicable
                                    [processID] => 2
                                )

                        )
                )

        )

下面是我用来生成选项并尝试重新选择数组中的选项的HTML / PHP:

代码语言:javascript
复制
<select name="prevention" id="prevention" class="form-control dd ff" placeholder="Select 1 or more options" multiple="multiple">
<?php foreach($processes->data as $process){ 
   foreach($recordDetails->data->prevention->reason as $is){
    if((int)$is->processID == (int)$process->processID){
        $isSel = 'selected';    
    }
    else
    {
        $isSel = '';    
    }
   }
   ?>
<option value="<?php echo $process->processID . '" '. $isSel . '>'; ?> <?php echo $process->process; ?></option>
<?php } ?>
</select>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 16:40:11

您在内部循环中重写$isSel,因此您只获得最后一次迭代的值。

相反,在内部循环之外初始化变量:

代码语言:javascript
复制
<select name="prevention" id="prevention" class="form-control dd ff" placeholder="Select 1 or more options" multiple="multiple">
<?php 
    foreach($processes->data as $process):
        $isSel = '';
        foreach($recordDetails->data->prevention->reason as $is):
            if((int)$is->processID == (int)$process->processID){
                $isSel = 'selected';
                break;
            }
        endforeach;
        ?>
        <option value="<?php echo $process->processID . '" '. $isSel . '>'; ?> <?php echo $process->process; ?></option>
    <?php 
    endforeach; ?>
</select>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26261772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档