0

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

第二部分是我有一个带有短代码列表的文本区域。所以我试图突出显示(选择)相同的 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 } ?>
4

2 回答 2

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 相同,则它们将被选中,如果不是,则不会被选中。

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

于 2013-02-04T18:55:15.757 回答
0

也许你想把这个字符串分解成数组?

 $MyArray = explode(",",$String_in_Database);
于 2013-02-04T18:24:40.143 回答