如何动态设置在PHP

时间:2016-03-29 12:02:26

标签: php option selected

我有以下代码..我遍历一个数组。现在我想针对帖子检查每个值(在我的特殊情况下通过$ _REQUEST)变量..如果它们相等,则选项字段应该被标记为选中..

$optionArr = array (opt_side_a => 10, opt_side_b => 20);
// Outter LOOP - $cside = iterator //
// INNER LOOP // 
foreach($optionArr as $key => $value){
    if($_REQUEST['opt_side_'.$cside] == $value){
        $isSelected = "selected";
    }
    echo '<option value="'.$value.'"'.$isSelected.'>'.$key.'</option>';
}

我的问题是每个选项值都标记为已选中。

2 个答案:

答案 0 :(得分:2)

试试这个

foreach($optionArr as $key => $value){
   $isSelected =""; //added this line
   if($_REQUEST['opt_side_'.$cside] == $value){
     $isSelected = "selected";
   }
   echo '<option value="'.$value.'"'.$isSelected.'>'.$key.'</option>';
}

答案 1 :(得分:0)

您应该采用下一种方式:

$optionArr = array (opt_side_a => 10, opt_side_b => 20);
// Outter LOOP - $cside = iterator //
// INNER LOOP // 
foreach($optionArr as $key => $value){
    if($_REQUEST['opt_side_'.$cside] == $value){
        echo '<option value="'.$value.'" "selected">'.$key.'</option>';
    }

}

您只需将$ isSelected设置一次,但它会在首次初始化后显示在所有选项中。此外,如果您需要此变量,请在设置选项后立即清理它,如下所示:

$optionArr = array (opt_side_a => 10, opt_side_b => 20);
// Outter LOOP - $cside = iterator //
// INNER LOOP // 
foreach($optionArr as $key => $value){
    $isSelected = "";    
    if($_REQUEST['opt_side_'.$cside] == $value){
        $isSelected = "selected";
    }
    echo '<option value="'.$value.'"'.$isSelected.'>'.$key.'</option>';
}