我正在从我的数据库中提取数据,以检索为多选择下拉列表选择的多个选项。我尝试将这些值重置为已选择的值,但它仅选择其中之一。
数据库中的数组:
[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:
<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>发布于 2014-10-08 16:40:11
您在内部循环中重写$isSel,因此您只获得最后一次迭代的值。
相反,在内部循环之外初始化变量:
<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>https://stackoverflow.com/questions/26261772
复制相似问题