如何使表单元素“记住”选择?

时间:2010-10-16 15:28:31

标签: php javascript mysql html database

我正在使用php建立一个“更改分类”页面。

我使用Mysql作为数据库。

目前我使用PHP来获取有关分类的所有mysql信息,然后我输出如下:

  $table.="
   <select name='year' id='year'>
     <option id='2000' value='2000'>2000</option>
     <option id='2001' value='2001'>2001</option>
     <option id='2002' value='2002'>2002</option>
   </select>";

   echo $table;

我有一个图片上传工具,可以将页面提交给自己,同时上传图片,并在页面底部显示。问题是,无论何时完成,用户必须再次填写所有信息,因为它们被“遗忘”。

我知道输入类型=“文字”,您可以在其中执行以下操作:

   <input type="text" name="text" value="<?php echo $_POST['text'];?>">

但选择呢?收音机?等?

我该怎么办?

由于

5 个答案:

答案 0 :(得分:2)

您可以将selected属性设置为"selected",使其成为默认/当前选择:

<option id="2000" value="2000" selected="selected">2000</option>

php示例:

$options = array( '2000' => '2000', '2001' => '2001', '2002' => '2002' );
$selected = '2001';
$select = '<select name="year" id="year">';

foreach ( $options as $key => $value )
{
    $select .= '  <option value="' . $key . ( $key == $selected ? '" selected="selected">' : '">' ) . $value . '</option>';
}

$select .= '</select>';

答案 1 :(得分:2)

<option 
  id='2000'
  value='2000'
  <?php if(isset($year) && $year === '2000') echo 'selected="selected"'?>
>2000</option>

$year包含从哪里开始的年份。这假设$year是一个字符串。如果$year是整数,则将条件更改为:

  if(isset($year) && $year === 2000)

对于单选按钮和复选框,只需将selected="selected"替换为checked="checked"

答案 2 :(得分:1)

您可以在PHP中有条件地回显selected,具体取决于要选择的值。

答案 3 :(得分:1)

对于选择,你需要循环数据并检查值是否等于所选值(至少这是最容易做到的),这是一个更强烈的选择。但你可以使用复选框/收音机看到的类似技术。

<input type="radio" name="radio1" value="1" <?php echo (!empty($_POST['radio1']))?'checked':''?>> 
<input type="checkbox" name="chkbox1" value="1" <?php echo (!empty($_POST['chkbox1']))?'checked':''?>>

由于您在创建表,因此PHP端是代码:

  $years = array('2000', '2001', '2002');

  $table .= "<select name='year' id='year'>";
  foreach ($years as $year) {
      $table .= "<option id='" . $year . "' value='" . $year . "' " . 
            (($_POST['year'] == $year)?'selected':'') . ">" . $year . "</option>\n";
  }

  $table.="</select>";

应该让您选择正确的陈述。的?和:组成三元运算符,它是一个缩短的if / else语句。

答案 4 :(得分:0)

<?php

$selected[$_GET['year']] = "selected='selected'";

$table.="
 <select name='year' id='year'>
   <option id='2000' value='2000' " . $selected['2000'] . ">2000</option>
   <option id='2001' value='2001' " . $selected['2001'] . ">2001</option>
   <option id='2002' value='2002' " . $selected['2002'] . ">2002</option>
 </select>";

echo $table;
?>