【问题标题】:Multi Select Dropdown Not selected多选下拉菜单 未选中
【发布时间】:2013-12-03 16:08:20
【问题描述】:

我想加载多选 dropdwon 表单,如果在 $opt 中找到 $val,则将它们显示为已选择,但似乎问题出在(in_array 函数不相互搜索数组)不比较。

我有以下代码...

<div class="controls">
    <label class="control-label" for="inputWei"><?=_('Display')?></label>
    <input type="hidden" value="" name="disp[] ">
    <select id="" class="input-xlarge multiselect" parent="" title="" rel="tooltip_right" name="disp[]" multiple="multiple" style="display: none;" data-original-title="">
    <?php 
        $genD = "Men, Women, Both";
        $opt = explode(',',$genD); 
        $gen = "Men, Women";
        $val = explode(',', $gen);       
        foreach($opt as $option){
            $selected = in_array(trim($val),$opt)?'selected="selected"':'';
            ?>
        <option <?=$selected?> value="<?=trim($option)?>"><?=trim($option)?></option>

 <?php  } ?>

    </select>
</div>

有人帮忙吗?

【问题讨论】:

    标签: php arrays forms


    【解决方案1】:

    问题不在于in_array(),而在于您对trim() 的使用。 trim 不适用于数组,仅适用于字符串。您必须分别修剪每个值。 另外,你有 in_array 参数倒置

    这样的东西应该可以工作。你也可以使用array_walk() 来修改数组

    $val = explode(',', $gen);   
    $copy = array();
    foreach ($val as $v){
        $copy[] = trim($v);
    }
    $val = $copy;
    foreach($options as $option){
        $selected = in_array($option, $val)?'selected="selected"':'';
        ?>
    

    【讨论】:

    • 我现在可以看到我的问题,感谢您的帮助。你明白了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多