PHP中的多重选择-如何编辑数据?

PHP中的多重选择-如何编辑数据?,php,forms,select,Php,Forms,Select,很容易创建一个表单,允许用户选择多个值,然后获取输入的数据。我想知道的是如何根据数据库中的信息重新创建表单?编辑数据 <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> <select name="test[]" multiple="multiple"> <option value="one">one</option> <option value="two

很容易创建一个表单,允许用户选择多个值,然后获取输入的数据。我想知道的是如何根据数据库中的信息重新创建表单?编辑数据

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="test[]" multiple="multiple">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
    <option value="four">four</option>
    <option value="five">five</option>
</select>
<input type="submit" value="Send" />
</form>

<?php
    $test=$_POST['test'];
    if ($test){
     foreach ($test as $t){echo 'You selected ',$t,'<br />';}
    }
?>

假设在原始数据中选择了值2和foru。如何重新创建表单以编辑数据,如下面的代码所示:

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="test[]" multiple="multiple">
    <option value="one">one</option>
    <option selected value="two">two</option>
    <option value="three">three</option>
    <option selected value="four">four</option>
    <option value="five">five</option>
</select>
<input type="submit" value="Send" />
</form>

最简单的处理方法是在数组中存储有效的表单值

$hourList = range(1, 24);
然后在打印时迭代数组

foreach($hourList as $hour)
{
  if ($hour == $enteredValue)
  {
    echo "<option selected value=\"{$hour}\">{$hour}</option>";
  }else
  {
    echo "<option value=\"{$hour}\">{$hour}</option>";
  }
}
foreach($hourList作为$hour)
{
如果($hour==$enteredValue)
{
回音“{$hour}”;
}否则
{
回音“{$hour}”;
}
}
如果您接受多个选择,您可能希望查看\u array()
中的
,而不是直接比较。对于提供“每个月/天/年”选项的情况,只需在使用范围后将其预先添加到数组中即可

如何在数据库中“存储有效的表单值”?我想我明白了理论,但实际上如何?如果结果是数组格式的,并且在数据库中,我如何能够搜索所有相等的数据,比如13h45?我是否应该将可搜索的数据保存在一个单独的表中?