Как динамически установить параметр, выбранный в переполнении стека

У меня есть следующий код .. Я перебираю массив. Теперь я хочу проверить каждое значение по переменной post (в моем специальном случае через $ _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>';
}

Моя проблема в том, что каждое значение параметра помечается как выбранное.

1

Решение

Попробуй это

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

Другие решения

Вы должны сделать это следующим образом:

$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>';
}
0

По вопросам рекламы [email protected]