使用select和option HTML标签,我使用$ _POST传递信息。
然而,当重新加载页面时,select会重置为原始值。 我希望能够记住已经通过的内容。
<?php
foreach($data as $value => $title)
{
foreach($ag as $first)
{
foreach($af as $second)
{
echo"<option value='$value-$first-$second'>$title - $first - $second</option>";
}
}
}
?>
正如您所看到的,我使用3个foreach循环来填充其中的内容。 如何才能记住我的选择?
感谢阅读。
答案 0 :(得分:2)
您需要在我的更改中使用select
字段的名称代替“your_select_field_name
”:
<?php
foreach($data as $value => $title)
{
foreach($ag as $first)
{
foreach($af as $second)
{
echo "<option value='$value-$first-$second'";
if( $_POST['your_select_field_name'] == "$value-$first-$second" ) {
echo ' selected="selected"';
}
echo ">$title - $first - $second</option>";
}
}
}
?>
答案 1 :(得分:1)
新页面上所选选项的输出需要如下所示:
<option value='foo' selected>...<option>
答案 2 :(得分:1)
HTML没有内存。默认情况下在<select>
表单元素中选择的项目是具有selected
属性的项目(如果没有,则为第一个)。只需使用$ _POST中包含的信息生成相应的标记:
<select name="foo">
<option value="v1">Label 1</option>
<option value="v2">Label 2</option>
<option value="v2" selected="selected">Label 3</option>
<option value="v4">Label 4</option>
</select>
答案 3 :(得分:0)
您需要在正确的选项上设置所选标签。像这样:
<?php
$postedValue = $_POST['select_name'];
foreach($data as $value => $title)
{
foreach($ag as $first)
{
foreach($af as $second)
{
$computedValue = $value . '-' . $first . '-'. $second;
if ( $computedValue == $postedValue) {
$selected = "selected";
} else {
$selected = ''
}
echo "<option value='$computedValue' $selected>$title - $first - $second</option>";
}
}
}
?>
它可能写得更干净,但这是一般的想法。