如何在提交循环时保留表单值?
我有这样的事情:
<?php
printf ("<optgroup label=\"CATEGORIES\">");
foreach ($category as $key => $val) {
printf ("<option value=\"$key\">$val</option>");
}
printf ("</optgroup>");
?>
在我的表单的另一部分点击提交时,它会将select中的值重置为顶部的值。我希望它保持相同的价值。怎么样?对于像输入框这样的东西我有这个有效:
<option value="5" name="results" <?php if($_GET["results"] == '5'){ ?> selected="selected" <?php } ?> >5</option>
这是有效的,因为我没有动态填充数据库的下拉列表,因此我不需要循环来循环遍历值并填充选择。
答案 0 :(得分:1)
printf ("<optgroup label=\"CATEGORIES\">");
foreach ($category as $key => $val) {
$option = '<option value="' . $key . '"';
if ($_GET['select_name'] == $key) {
$option .= ' selected="selected"';
}
$option .= ">$val</option>";
print $option;
}
printf ("</optgroup>");
答案 1 :(得分:0)
这取决于您的提交按钮的操作发送给您的位置。 您将需要获取值,最有可能形成$ _POST并在表单中恢复它们。 否则,您可以使用AJAX提交表单,而不用担心它被清除。
答案 2 :(得分:0)
foreach ($category as $key => $val) {
$sel = ($key == $_GET['results']) ? ' selected="selected"' : '';
printf ("<option value=\"$key\"$sel>$val</option>");
}
基本上,当/您达到提交的$ key值时,动态插入所选属性。