编程语言
首页 > 编程语言> > 如何使用PHP在选择框中选择的多个选项或具有不同值的数组的选项中设置选项

如何使用PHP在选择框中选择的多个选项或具有不同值的数组的选项中设置选项

作者:互联网

选项值取自数据库,并包含在选择框中以及其他选项中.如何设置从数据库中选择的值?

数据库中的值设置为$row [‘value’]并等于s.在HTML中,选项看起来像……

<select name="select">
<option value='xxs'>Extra, Extra small</option>
<option value='xs'>Extra small</option>
<option value='s'>Small</option>
<option value='m'>Medium</option>
<option value='l'>Large</option>
<option value='xl'>Extra Large</option>
<option value='xxl'>Extra, Extra small</option>
</select>

我想要的是在页面加载时显示的$row [‘value’](小)选项……这可能吗?

解决方法:

好消息是,这是可能的,在PHP中非常简单.首先,我们将所有选项及其各自的值放在一个数组中,如下所示:

<?php
$options=array('Extra, Extra small'=>'xxs','Extra small'=>'xs','Small'=>'s','Medium'=>'m','Large'=>'l','Extra Large'=>'xl','Extra, Extra Large'=>'xxl');

通过打开选择框并在foreach循环中调用options数组来执行此操作…

echo '<select>';
foreach($options as $view=>$value){

您可能已经注意到,数组包含的字段看起来像’Large’=>’l’,而for each循环调用的选项为$view => $value. $view表示名称字段,在本例中为“Large”,$value表示值字段“l”.如果您希望用户在选择框中看到不同于设置值的选项,这一点很重要.

接下来我们创建变量$selected,它将用于确定$row [‘value’]和$value之间是否匹配…

$selected=($row['value'] == $value)? "selected" : "";

这与使用if和else语句设置变量相同,但更短.变量之后的第一部分是询问$row [‘value’]是否等于$value,如果是,则$selected =“selected”else(:) $selected设置为空白.

接下来我们包括选项.因为它在foreach循环中,我们只需要一行来插入所有选项……

echo '<option '.$selected.' value="'.$value.'">'.$view.'</option>';

还记得上一步中的$selected变量吗?每次foreach循环遍历开头的选项数组的一部分时,它会检查$row [‘value’]是否等于$value.如果是,那么$selected将被设置为选中,并且该特定选项将是页面加载时显示的选项.它将继续遍历阵列的其余部分,直到扫描完所有视图和值并返回其各自的选项.

最后我们关闭foreach循环和选择框…

}
echo '</select>';

并且你有它,一种自动方式使选择框选项设置为选中.类似的模式可用于复选框,无线电选择器,选项卡等.

完整代码……

<?php
$options=array('Extra, Extra small'=>'xxs','Extra small'=>'xs','Small'=>'s','Medium'=>'m','Large'=>'l','Extra Large'=>'xl','Extra, Extra Large'=>'xxl');

echo '<select>';

foreach($options as $view=>$value){
    $selected=($row['value'] == $value)? "selected" : "";
echo '<option '.$selected.' value="'.$value.'">'.$view.'</option>';
}

echo '</select>';

标签:selected,php,arrays,loops,html-select
来源: https://codeday.me/bug/20190926/1820312.html