テキストに「é」が含まれていると、PHPで文字列比較を機能させるのに問題があります。以下は、デバッグインラインコードの山で私が持っているコードです。問題は、ドロップダウンでモントリオールを選択した場合、if
テストが機能しないことです。
if ($metabox->get_the_value() == $key) echo $selected;
// original code pre debug
コード
a= Array(
[INFORMATION] => INFORMATIONS
[LODGING] => HEBERGEMENT
[LOOK OUT FOR] => À SURVEILLER
[Montréal] => Montréal
[PROMOTIONS] ==> PROMOTIONS
[SECTION NAME] ==> NOM DE SECTION
[SPOTLIGHT] ==> EN VEDETTE
)
foreach (a as $key => $val){
echo '<option value="'.$key.'"';
if (strcasecmp ( trim($metabox->get_the_value())), trim($key))== 0) echo $selected ;
echo '>'.$key.' ('.$val.'):'. strcmp ( $metabox->get_the_value(), $key). '</option>';
}
モントリオールを選択して保存すると、出力は次のようになります。DBに保存されます。
<select name="_content_language_meta[_content_cat_type]">
<option value="-1">Select</option>
<option value="INFORMATION">INFORMATION (INFORMATIONS):Montréal - 1</option>
<option value="LODGING">LODGING (HEBERGEMENT):Montréal - 1</option>
<option value="LOOK OUT FOR">LOOK OUT FOR (À SURVEILLER):Montréal - 1</option>
<option value="Montréal">Montréal (Montréal):Montréal - -1</option>
<option value="PROMOTIONS">PROMOTIONS (PROMOTIONS):Montréal - -1</option>
<option value="SECTION NAME">SECTION NAME (NOM DE SECTION):Montréal - -1</option>
<option value="SPOTLIGHT">SPOTLIGHT (EN VEDETTE):Montréal - -1</option>
</select>
情報を選択した場合に出力
<select name="_content_language_meta[_content_cat_type]">
<option value="-1">Select</option>
<option value="INFORMATION" selected="selected">INFORMATION (INFORMATIONS):INFORMATION - 0</option>
<option value="LODGING">LODGING (HEBERGEMENT):INFORMATION - -1</option>
<option value="LOOK OUT FOR">LOOK OUT FOR (À SURVEILLER):INFORMATION - -1</option>
<option value="Montréal">Montréal (Montréal):INFORMATION - -1</option>
<option value="PROMOTIONS">PROMOTIONS (PROMOTIONS):INFORMATION - -1</option>
<option value="SECTION NAME">SECTION NAME (NOM DE SECTION):INFORMATION - -1</option>
<option value="SPOTLIGHT">SPOTLIGHT (EN VEDETTE):INFORMATION - -1</option>
</select>
これはWordPress/MYSQLサイトです。アイデア?