如何动态设置在 PHP 中选择的选项
How to dynamically set an option selected in PHP
我有以下代码..我循环遍历一个数组。现在我想根据 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>';
}
我的问题是每个选项值都被标记为选中。
试试这个
foreach($optionArr as $key => $value){
$isSelected =""; //added this line
if($_REQUEST['opt_side_'.$cside] == $value){
$isSelected = "selected";
}
echo '<option value="'.$value.'"'.$isSelected.'>'.$key.'</option>';
}
您应该按以下方式执行此操作:
$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>';
}
我有以下代码..我循环遍历一个数组。现在我想根据 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>';
}
我的问题是每个选项值都被标记为选中。
试试这个
foreach($optionArr as $key => $value){
$isSelected =""; //added this line
if($_REQUEST['opt_side_'.$cside] == $value){
$isSelected = "selected";
}
echo '<option value="'.$value.'"'.$isSelected.'>'.$key.'</option>';
}
您应该按以下方式执行此操作:
$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>';
}