所以我有一个输入表单,其中包含一些复选框,由于某种原因,我的数据库不希望存储数据,具体取决于是否按下它们。
我的代码
指数:
<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);
}
}
我得到的唯一回报就是它无法将数据存储在数据库中,而我可以将变量返回到视图中并且没有问题地将它们回显出去,我不能在我的生活中找出出错的地方。谢谢你的时间。
答案 0 :(得分:0)
如果您希望他们发送任何内容,您的复选框需要有value
参数。复选框以某种方式工作,当您检查它们时,它们的值将在表单数据中传递。如果没有检查,那么他们就不会发送任何内容。
答案 1 :(得分:0)
包含与标签名称等效的复选框值。并检查它(isset($ _ POST []))在db中存储数据或进行进一步处理