在textarea中选择多个值

时间:2013-02-04 18:16:22

标签: php html selected

我有一个db_field(短代码),在提交查询时返回一个字符串。该回报的价值是AB,EF,GH(正是这个!

第二部分是我有一个textarea,其中包含该短代码的列表。所以我试图突出(选中)相同的macthed元素。 例如:

$String_in_Database = AB,EF,GH;

希望拥有:

<select name="Country[]" id="Country" multiple="multiple" size="5">
<option value="AB" selected>AB</option>
<option value="CD">CD</option>
<option value="EF" selected>EF</option>
<option value="GH" selected>GH</option>
......
</select>

这是我生成选项的方式:

<?php $MyArray = $settingsUser['set_disallowcountries']; ?>
<?php foreach($disallCountry as $key => $value) { ?>
<option value="<?php echo $value['short'] ?>" <?php if(is_array($value['short'], $MyArray)) { echo 'selected'; }?>><?php echo $value['long'] ?></option>
<?php } ?>

2 个答案:

答案 0 :(得分:0)

也许你想将这个字符串分解为数组?

 $MyArray = explode(",",$String_in_Database);

答案 1 :(得分:0)

我有点不确定这个问题,所以你想检查一下用户是否有选定的国家/地区并在选项下拉/框中选中它?

<?php
$userSelected= explode(",", $string_in_database);
$allCountries = array('AA', 'BB', 'CC');
foreach($allCountries as $country)
    if(in_array($country["short"], $myArray){
        $selected = 'selected';
    } else {
        $selected = '';
    }
    echo '<option value="'.$country["short"].'" '.$selected.'>'.$country["long"].'</option>';
}

这样,如果来自数据库的用户字符串(即猜测是用户设置)与AA,BB或CC相同,则会选择它们,如果不是,则不会被选中。

据我所知,我认为这应该有效,但我可能错了,因为我还没有测试过。只是我的想法!