2014-04-27 46 views
-1

我正在嘗試進行表單提交。表單提交2個數組

形式是選擇一個任務,然後才顯示有複選框幾行,如果選中複選框使用值1-10

選擇是需要從選擇添加值到數據庫中。

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

我嘗試了很多時間,但一無所獲。

回答

0

在第一個if中,當您的意思是==時,您有=

您還沒有發佈整個HTML,所以我不得不假設在那裏有一個submita元素。你最好的辦法是做var_dump($_POST)看看你實際得到了什麼,然後建立你的代碼來匹配。

你的代碼是不正確的,因爲它在每個notaboxes循環,當我懷疑你想要的只是檢查對應於該元素的複選框。 你可能想要更多的東西是這樣的:

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'); 
    } 
} 
+0

在評論喜歡工作,我用你的鱈魚和作品50%。 –

+0

我使用你的鱈魚,工作50%。現在插入每個nota僅用於檢查框但只有一次。示例Box1 - nota 1和2; box2 - nota 5,7 and 8; box3 -7和9。現在在DB中需要7行,它是但是腳本arange nota和框所以,框1-2-3和nota 1-2-5-7-8-7-9和box1 = nota1; box2 = nota2,box3 = nota5 nota7-8-7-9 has boxid = 0 –

0

我是編輯鱈魚,而是從第一個答案

PHP

if(isset($_POST) && $_SERVER['REQUEST_METHOD'] == 'POST'){  
     if (isset($_POST['nota'])) 
      { 
       for ($i = 0; $i < count($_POST['nota']); ++$i) 
      { 
       if (isset($_POST['boxes'][$i])) 
        $task = htmlent($_POST['task_id']); 
        $db->insert(array(
         "nota" => $_POST['nota'][$i], 
         "date" => time(), 
         "box" => $_POST['boxes'][$i], 
         "task" => $task 
         ), 
         "erp_note"); 
    } 
    } 
    } 

HTML 

<form class="grid_12" action="" method="post" enctype="multipart/form-data"> 
<input type="checkbox" name="boxes[]" value="<?=$row['id'];?>"></input><?=$row['box_name'];?> 
<select name="nota[]" multiple><option value="">select</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select> 
<input name="task" type="text" value="<?=$row['task_id'];?>" style="display:none;"> 
</form>