0

クエリを送信したときに文字列を返すdb_field(ショートコード)があります。そのリターンからの値はAB、EF、GHです(まさにこれです!

2番目の部分は、そのショートコードのリストを含むテキストエリアがあることです。だから私は同じ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

たぶん、この文字列を配列に分解したいですか?

 $MyArray = explode(",",$String_in_Database);
于 2013-02-04T18:24:40.143 に答える
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 に答える