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

时间:2011-06-19 12:38:02

标签: php forms select

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

<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>

最初我希望添加和编辑代码能够正常工作。最后,我希望能够在表单中输入各种多个选项并进行编辑。

enter image description here

1 个答案:

答案 0 :(得分:-1)

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

$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>";
  }
}

如果您接受多项选择,您可能需要查看in_array()而不是直接比较。对于您提供“每月/每日/每年”选项的情况,只需在使用范围后将其添加到数组中。