表单提交2个数组

时间:2014-04-27 12:42:54

标签: php html

我正在尝试提交表单。

表单选择一个任务,然后显示带有复选框的多行,并选择值1-10

如果选中复选框,则需要将select中的值添加到数据库中。

这是PHP代码

if(isset($_POST) && $_SERVER['REQUEST_METHOD'] = 'POST'){   
    if(isset($_POST['submita'])){
        foreach($_POST['nota'] as $key => $value)
            if (isset($_POST['boxes'])){
                foreach($_POST['boxes'] as $key => $value2){
                    if(isset($value2)){

                        $nota = htmlent($_POST['nota']);
                        $box = htmlent($_POST['boxes']);
                        $task = htmlent($_POST['task']);


                        $db->insert(array(
                                    "task" => $task,
                                    "nota" => $value,
                                    "box" => $value2,
                                    ), 
                                "erp_notes");  
                    }
                    else
                    {
                        echo 'Select';
                    }
                }

            }
        }
    }

HTML

<input type="checkbox" name="boxes[]" value="<?=$row['id'];?>"></input>
<?=$row['name'];?>
<select name="nota[]" >
  <option value="">Select</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>

</select>

我尝试了很多时间,但没有。

1 个答案:

答案 0 :(得分:0)

当您if= ==submita代表var_dump($_POST)

您尚未发布整个HTML,因此我必须假设其中有一个boxes元素正在设置中。最好的办法是nota查看您实际获得的内容,然后构建匹配的代码。

您的代码不正确,因为它会为每个if (isset($_POST['nota'])) { for ($i = 0; $i < count($_POST['nota']); ++$i) { if (isset($_POST['boxes'][$i])) $db->insert(array('task' => $task, 'nota' => $_POST['nota'][$i], 'box' => $_POST['boxes'][$i], 'erp_notes'); } } 的每个{{1}}循环,当我怀疑您想要的只是选中与该元素对应的复选框时。 你可能想要更像这样的东西:

{{1}}