-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[$id][$order]['url']我认为您将在您的 POST 数组中获得发送的值。然后只需将发送的值与循环中的当前值进行比较即可:

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 回答