我有以下代码......
$all = $ent->getAll($fed_code);
Array ( [NC] => Array (
[101] => banana,
[102] => orange,
[103] => apple,
)
)
$select = $ent->getSelected($fed_code);
Array
(
[101] => banana,
)
我想要的是如果在$ all数组中找到$ select值,则按所选值填充下拉列表。 这是我目前的代码
<?php
foreach ($all as $orgKey => $list) {
?>
<tr><td width="5%">
<h5>Extra Fruits</h5>
</td>
<td width="10%">
<label class="control-label">Fruits</label>
<select class="input-xlarge" id="input" name="ent[]">
<option value="">Select</option>';
<? foreach ($list as $key => $value) {
$selected = in_array($select, $key)?'selected="selected"':'';
echo $selected;
?>
<option <?=$selected?> value="<?=$key?>"><?=$value?></option>
<? } ?>
</select>
</td>
</tr>
但是,似乎有些不对劲,它没有选择任何东西。 有人有想法吗?
答案 0 :(得分:1)
你真的需要里面的foreach吗? 我尝试了这个,它已经可以打印您的选择与$ select中的选择。
<select class="input-xlarge" id="input" name="ent[]">
<? foreach ($all as $orgKey => $list) {
$selected = in_array($select, $list) ? 'selected="selected"' : '';
?>
<option <?=$selected?> value="<?=$orgKey?>"><?=$list?></option>
<? } ?>
</select>
我刚刚意识到我已经互换了in_array的参数。这应该做到这一点。我还在select标签中添加了多个选项,因此如果我们选择了多个选项,它将会显示出来。
<select multiple class="input-xlarge" id="input" name="ent[]">
<? foreach ($all as $orgKey => $list) {
$selected = in_array($list, $select) ? 'selected="selected"' : '';
?>
<option <?=$selected?> value="<?=$orgKey?>"><?=$list?></option>
<? } ?>
</select>
如果您不想使用多个,那么测试为正数的最后一项将是html中显示的选项。
答案 1 :(得分:0)
打印$selected
会产生什么?另外,从select标签中选择一个选项,不是语法如下:
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi" selected>Audi</option>
</select>
而不是selected="selected"