Php 提交a<;时如何保留表单值;选择>;环

Php 提交a<;时如何保留表单值;选择>;环,php,Php,如何在提交循环时保留表单值 我有这样的想法: <?php printf ("<optgroup label=\"CATEGORIES\">"); foreach ($category as $key => $val) { printf ("<option value=\"$key\">$val</option>"); } printf ("</optgroup>"); ?> 在表单的

如何在提交循环时保留表单值

我有这样的想法:

<?php
    printf ("<optgroup label=\"CATEGORIES\">");

    foreach ($category as $key => $val) {
    printf ("<option value=\"$key\">$val</option>");
    }
    printf ("</optgroup>");
?>

在表单的另一部分点击submit时,它会将select中的值重置为最上面的值。我希望它保持相同的值。怎么用?对于像输入框这样的东西,我有这样的方法:

<option value="5" name="results" <?php if($_GET["results"] == '5'){  ?> selected="selected" <?php } ?> >5</option>
>5

这是因为我没有动态填充数据库中的下拉列表,所以我不需要循环来遍历值并填充select。

这在某种程度上取决于提交按钮的操作发送给您的位置。 您将需要获取值,最有可能的形式是$\u POST,并将它们恢复到您的表单中。 否则,您可以使用AJAX提交表单,而不必担心表单被清除。

foreach($key=>class$val){
foreach ($category as $key => $val) {
    $sel = ($key == $_GET['results']) ? ' selected="selected"' : '';
    printf ("<option value=\"$key\"$sel>$val</option>");
}
$sel=($key=$\u GET['results'])?“selected=”selected“:”; printf(“$val”); }
基本上,当/如果达到提交的$key值时,动态插入所选属性。

printf(“”);
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>");
foreach($key=>$val的类别){
$option='这是正确的,也是迄今为止最优雅的解决方案,但是,不要忘记考虑当未设置
$\u GET['results']
时的情况,当前代码将仅在回发期间工作。啊,我知道你所做的。但它不工作。选择的名称是“book”,所以我将“book”放在“results”的位置它不起作用。它保留了3个随机选项的值。