2014-03-04 31 views
1

所以我有一個輸入表單,其中包含一些複選框,由於某種原因,我的數據庫不想存儲數據,具體取決於它們是否被按下。數據庫不存儲複選框數據

我的代碼

指數:

<table> 
    <form action="/htirs" method="POST"> 
     <tr> 
      <td>Rengjort Oppløsningsfilter</td><td><input type="checkbox" name="renOpFilt" /></td> 
     </tr> 
     <tr> 
      <td>Ren Nal</td><td><input type="checkbox" name="renNal" /></td> 
     </tr> 
     <tr> 
      <td>kontrSlangTank</td><td><input type="checkbox" name="kontrSlangTank" /></td> 
     </tr> 
     <tr> 
      <td>kontrSlangTank</td><td><input type="checkbox" name="kontrSlangTank" /></td> 
     </tr> 
     <tr> 
      <td><?php //Output for om lagringen gikk bra eller ikke. 
       if(isset($test3)) 
       { 
        if($test3) 
        { 
         echo "Lagret i databasen!"; 
        } 
        else 
        { 
         echo "Feil! Data ikke lagret!"; 
        } 
       } 
       else 
       { 
        echo "<hr/>"; 
       } ?> 
      </td><td><input type="submit" name="lagre3" value="Lagre" /></td> 
     </tr> 
    </form> 
</table> 

路線:

Route::post('/htirs', '[email protected]'); 

的HomeController:

public function insertHTirs() 
    { 
     $now = new DateTime(); 
     $now->setTimezone(new DateTimeZone('Europe/Oslo')); 

     $input = Input::all(); 

     if(Input::get('renOpFilt') == 'on') 
     { 
      $renOpFilt = 1; 
     } 
     else 
     { 
      $renOpFilt = 0; 
     } 

     if(Input::get('renNal') == 'on') 
     { 
      $renNal = 1; 
     } 
     else 
     { 
      $renNal = 0; 
     } 

     if(Input::get('kontrSlangTank') == 'on') 
     { 
      $kontrSlangTank = 1; 
     } 
     else 
     { 
      $kontrSlangTank = 0; 
     } 

     if(Input::get('kontrOgRenPad') == 'on') 
     { 
      $kontrOgRenPad = 1; 
     } 
     else 
     { 
      $kontrOgRenPad = 0; 
     } 


     try { 
      DB::beginTransaction(); 
      $query = DB::table('hvertirsdag')->insert(array(
       'dato' => $now->format('d.m.Y'), 
       'tid' => $now->format('H:i'), 
       'renOpplFilter' => $renOpFilt, 
       'renNal' => $renNal, 
       'kontrSlangTank' => $kontrSlangTank, 
       'kontrOgRenPad' => $kontrOgRenPad)); 

      $query2 = DB::table('ansatt_htirs')->insert(array(
       'ansattId' => '1', 
       'dato' => $now->format('d.m.Y'), 
       'tid' => $now->format('H:i'))); 
       DB::commit(); 

       if($query && $query2) 
       { 
        $test3 = true; 
        return View::make('index')->with('test3', $test3); 
       } 

      } 
     catch (\PDOException $e) 
      { 
       DB::rollback(); 
       $test3 = false; 
       return View::make('index')->with('test3', $test3); 
      } 
    } 

我唯一得到的回報是,它沒有存儲數據在數據庫中e,而我可以將這些變量返回到視圖中並且無任何問題地將它們回顯出來,而且我不能爲了我的生活找出錯誤的位置。謝謝你的時間。

回答

0

如果您希望他們發送任何內容,您的複選框需要有value參數。複選框以某種方式工作,當您檢查它們時,它們的值將通過表單數據傳遞。如果他們沒有被檢查,那麼他們不會發送任何東西。

+0

是的,這是真的,我認爲一樣,但事情是他們確實返回'開',如果他們現在檢查,我用value參數設置爲'on'對其進行測試。 – user249494

0

包含與標籤名相同的複選框值。並檢查它(isset($ _ POST []))存儲在數據庫中的數據或進一步處理

相關問題