-1

以下の保存されたオプション配列にselected="selected"を設定する方法。ありがとう !

例えば

<option value="Facebook">Facebook</option>
<option value="Twitter" selected="selected">Twitter</option>



<select name="'. $id .'['.$order.'][url]" id="'. $id .'['.$order.'][url]">

                $socialicons =  array ('facebook' => 'Facebook', 'twitter' => 'Twitter');

                foreach ($socialicons as $socialicon) {


             <option value="'.$socialicon.'" />'.$socialicon.'</option>

                }

             </select>
4

2 に答える 2

0

送信された値が POST 配列にある$_POST[$id][$order]['url']と思います。次に、送信された値をループ内の現在の値と比較するだけです。

foreach ($socialicons as $socialicon)  {
    $selected = '';
    if ($socialicon == $_POST[$id][$order]['url']) {
        $selected = 'selected="selected"';
    echo '<option value="'.$socialicon.'" '.$selected.' />'.$socialicon.'</option>';
}

配列についてはよくわからない$_POSTので、それを微調整するか、多次元への$_POSTアクセス方法を検索する必要があるかもしれません。

選択内容を別の場所 (データベースなど) に保存すると、そこからの値と比較できます。

于 2013-01-26T22:27:16.757 に答える
0

これを実現するには、多次元配列を使用できます。

$socialicons = array(
    array("name" => "Facebook", "selected" => false), 
    array("name" => "Twitter", "selected" => true)
);

foreach($socialicons as $site) {

    $selected_text = ($site['selected']) ? "selected='selected'" : "";
    echo "<option $selected_text>". $site['name'] ."</option>";

}

上記のコードでは、三項演算子を使用して適切なselected='selected'テキストを作成しています。テストされていないコードは動作するはずですが、それでもいくつかのアイデアが得られます。

于 2013-01-26T22:27:29.850 に答える