提交包含100 <select> s到数据库的表单</select>

时间:2011-12-08 21:06:51

标签: php codeigniter

我有一个非常基本的页面,每天显示每五分钟(12:00,12:05,12:10等)。每次下一个下拉列表<select>,数字为1-9。 <select>的名称是它对应的时间的名称。用户选择其中一个数字,转到下一个,选择一个数字等,直到它们到达底部并点击提交。

在数据库表中,每天的每个时间都有自己的行,另一个字段用于数字。

如何提交此表单并根据一天中的时间将数字插入正确的行?出于某种原因,我无法绕过这个问题。我甚至不需要进行验证。这不是一个真实的网站。

3 个答案:

答案 0 :(得分:2)

我认为select的名称应该是times[],值应该是时间。

所以在php中你可以遍历times[]数组并得到与其值对应的行。然后相应地更新计数。

<select name="times[]" multiple>
  <option value="19:00">1</option>
  <option value="19:05">2</option>
</select>

在php伪造的代码中

foreach ($_GET['times'] as time) {
  *sanatize
  select row where time = time
  update count
}

答案 1 :(得分:0)

假设你有一个这样的表:

MyValues
TimeOfDay varchar(50),
Value int

您发布的表单数据如下所示:

?19:00=1&19:05=2

您将遍历每个已发布的表单字段,并使用每个字段的键和值生成如下更新语句:

foreach($_POST as $key => $value)
{
update MyValues set Value = $value where TimeOfDay = $fieldName
}

答案 2 :(得分:0)

似乎@ dm03514是不错的选择,但更倾向于使用$_POST而不是$_GET,并且在此过程中你可以这样做

for($=0;$i<count($_POST['times']);$i++){
     #do some action with $_POST['times'][$i]
}
相关问题