数据库不存储复选框数据

时间:2014-03-04 12:33:40

标签: php laravel laravel-4

所以我有一个输入表单,其中包含一些复选框,由于某种原因,我的数据库不希望存储数据,具体取决于是否按下它们。

我的代码

指数:

<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', 'HomeController@insertHTirs');

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);
            }
    }

我得到的唯一回报就是它无法将数据存储在数据库中,而我可以将变量返回到视图中并且没有问题地将它们回显出去,我不能在我的生活中找出出错的地方。谢谢你的时间。

2 个答案:

答案 0 :(得分:0)

如果您希望他们发送任何内容,您的复选框需要有value参数。复选框以某种方式工作,当您检查它们时,它们的值将在表单数据中传递。如果没有检查,那么他们就不会发送任何内容。

答案 1 :(得分:0)

包含与标签名称等效的复选框值。并检查它(isset($ _ POST []))在db中存储数据或进行进一步处理