将所选选定项设置为选项

时间:2013-01-26 22:19:23

标签: php

如何为下面保存的选项数组设置selected =“selected”。谢谢!

e.g

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

2 个答案:

答案 0 :(得分: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的访问方式。

如果您将选择内容保存在其他位置,例如在数据库中,您可以将其与来自那里的值进行比较。

答案 1 :(得分: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' - 文本。未经测试的代码应该可行 - 但仍会给您一些想法。