我有一个带有一些值的选择框,我将这些值插入数组中。
现在我想选择一些特定的选项,即使页面重新加载也要保持选项。
$logos =array('logo1', 'logo2', 'logo3');
echo '
<td class="jofftd">
<label>Platform</label>
<select name="searchpt">
<option value="0">All</option>
';
foreach ($logos as $value)
{
echo '
<option value="'.$value.'">' .$value . '</option>
';
}
echo '
</select>
</td>';
我需要做这样的事情:
foreach ($logos as $value)
{
echo '
<option';
if ($value == $value) echo 'selected="selected"';
echo 'value="'.$value.'">' .$value . '</option>
';
}
但它不起作用。
感谢。
答案 0 :(得分:0)
如果没有别的,你至少缺少一个空格字符:
<option';
if ($value == $value) echo 'selected="selected"';
这将产生
<optionselected="selected"
这不是完全有效的HTML。
另外,$value==$value
将始终为真,因此即使标签中有适当的间距,您也会将所选选项的全部标记为已选中。您需要将循环中的$value
与原始形式的值进行比较,例如
if ($value == $_POST['field_from_previous_form'}) { ... }
答案 1 :(得分:0)
假设您使用的是POST方法表单,代码看起来像这样(注意:未经测试)
foreach ($logos as $value)
{
$selected = ($value == $_POST['searchpt']) ? ' selected' : '';
echo '<option'. $selected . ' value="'.$value.'">' .$value . '</option>';
}
答案 2 :(得分:0)
$ value == $ value将始终为true,并且它将始终添加selected =“selected”
使用字符串连接形成选择表单字段。
<?php
$logos =array('logo1', 'logo2', 'logo3');
$value = 'logo1';
$str = '<select name="searchpt"><option value="0">All</option>';
foreach ($logos as $value)
{
$str.='<option ';
if ($value == 'logo1')
$str.=' selected="selected "';
$str.=' value="'.$value.' ">' .$value . ' </option> ';
}
$str.='</select>';
echo $str;
?>
希望此代码段能解决您的问题