2016-03-29 9 views
0

У меня есть следующий код. Я прокручиваю массив. Теперь я хочу, чтобы проверить каждое значение от должности (в моем частном случае через $ _REQUEST) переменной .. Если они равны поле параметр должен быть помечен как выбранный ..Как динамически установить параметр, выбранный в PHP

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

О, o_O, так просто. Спасибо;) –

+0

Вы хотите установить '$ isSelected' на' '' 'на каждой итерации, хотя ... –

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