PHP:带有复选框的未定义索引

PHP: Undefined index with checkboxes

提问人:user3360972 提问时间:7/26/2015 最后编辑:Madhawa Priyashanthauser3360972 更新时间:7/27/2015 访问量:1797

问:

我一直收到以下错误: 错误取决于选中了哪个复选框。 数据传递到数据库,但某些东西给出了错误。 我想我需要先检查一下还是更改一些东西? 表中的记录设置为布尔值。 它需要做的是通过按下提交按钮来保存复选框的值(选中 = 1 / 未选中 = 0)并将其保存在数据库中。 它这样做,但并非没有显示错误。

>Notice: Undefined index: dekblad1_generfd in D:\Apps\Xampp\htdocs\el_gusto\toevoegen_handler.php on line 16
<br>
Notice: Undefined index: dekblad1_zwaar_generfd in D:\Apps\Xampp\htdocs\el_gusto\toevoegen_handler.php on line 17

我的代码:

PHP的

<?php

//
$datum = $_POST['datum'];
$merk = $_POST['merk'];
$module = $_POST['module'];
$comm_naam = $_POST['comm_naam'];
$land = $_POST['land'];
$locatie = $_POST['locatie'];
$prijs = $_POST['prijs'];

//KOUD
//KOUD - DEKBLAD
line 14 $dekblad1_glad = $_POST['dekblad1_glad'];
line 15 $dekblad1_licht_generfd = $_POST['dekblad1_licht_generfd'];
line 16 $dekblad1_generfd = $_POST['dekblad1_generfd'];
line 17 $dekblad1_zwaar_generfd = $_POST['dekblad1_zwaar_generfd'];
line 8 $dekblad1_grof_generfd = $_POST['dekblad1_grof_generfd'];

if($dekblad1_glad=="on") $dekblad1_glad=1; else $dekblad1_glad=0;
if($dekblad1_licht_generfd=="on") $dekblad1_licht_generfd=1; else                         $dekblad1_licht_generfd=0;
if($dekblad1_generfd=="on") $dekblad1_generfd=1; else $dekblad1_generfd=0;
if($dekblad1_zwaar_generfd=="on") $dekblad1_zwaar_generfd=1; else $dekblad1_zwaar_generfd=0;
if($dekblad1_grof_generfd=="on") $dekblad1_grof_generfd=1; else $dekblad1_grof_generfd=0;

$connect = mysql_connect("localhost", "root", "") or die ("Couldn't connect to the database!");
mysql_select_db("el_gusto") or die ("Couldn't find db!");

$query = mysql_query("INSERT INTO sigaren(datum, merk, module, comm_naam, land, locatie, prijs, dekblad1_glad, dekblad1_licht_generfd, dekblad1_generfd, dekblad1_zwaar_generfd, dekblad1_grof_generfd) VALUES('$datum','$merk','$module','$comm_naam','$land','$locatie','$prijs','$dekblad1_glad','$dekblad1_licht_generfd','$dekblad1_generfd','$dekblad1_zwaar_generfd','$dekblad1_grof_generfd')");

if($query) {
    echo "Toevoeging gelukt!";  
}
else{
    echo mysql_error(); 
}   

?>

[HTML全文]

<input type='checkbox' name="dekblad1_glad" value="1">glad
<input type='checkbox' name="dekblad1_licht_generfd" value="1">licht generfd
<input type='checkbox' name="dekblad1_generfd" value="1">generfd
<input type='checkbox' name="dekblad1_zwaar_generfd" value="1">zwaar generfd
<input type='checkbox' name="dekblad1_grof_generfd" value="1">grof generfd

为帮助而欢呼,并花时间阅读本文!

php html 未定义索引

评论

0赞 Shehary 7/26/2015
用于检查发布时isset

答:

0赞 Niels 7/26/2015 #1

你能多提供一点HTML代码吗?在这一点上,我没有看到您使用的是GET还是POST方法,因此没有从您的复选框传递任何内容。 欲了解更多信息,请访问:http://www.w3schools.com/tags/att_form_method.asp

评论

0赞 user3360972 7/26/2015
这是 POST...(简短版) <form action=“toevoegen_handler.php” method=“post”> ....<input type='submit' name=“Toevoegen” value='Toevoegen'> </form>
0赞 Jigar 7/26/2015 #2

当您设置$dekblad1_grof_generfd

执行以下操作:

$dekblad1_grof_generfd = isset($_POST['dekblad1_grof_generfd']) ? $_POST['dekblad1_grof_generfd'] : 'Default Value'; // or ''

同样,对于所有变量,否则它们将产生类似的通知。

还要检查 isset

错误是dekblad1_grof_generfd未在

$_POST['dekblad1_grof_generfd']

评论

0赞 user3360972 7/26/2015
$dekblad 1_glad = $_POST['dekblad1_glad'] ?$_POST['dekblad1_glad'] : 空;$dekblad 1_licht_generfd = $_POST['dekblad1_licht_generfd'] ?$_POST['dekblad1_generfd'] : 空;$dekblad 1_generfd = $_POST['dekblad1_generfd'] ?$_POST['dekblad1_generfd'] : 空;$dekblad 1_zwaar_generfd = $_POST['dekblad1_zwaar_generfd'] ?$_POST['dekblad1_zwaar_generfd'] : 空;$dekblad 1_grof_generfd = $_POST['dekblad1_grof_generfd'] ?$_POST['dekblad1_grof_generfd'] : 空;我做了上述操作,但仍然收到错误。.
0赞 user3360972 7/26/2015
即使我删除这一行: if($dekblad 1_grof_generfd==“on”) <= 条件我仍然收到错误..
0赞 Jigar 7/26/2015
@user3360972不设置 .一些价值。:)null
0赞 Jigar 7/26/2015
@user3360972意味着它显然没有设置。null
0赞 user3360972 7/27/2015
$dekblad 1_glad = $_POST['dekblad1_glad'] ?$_POST['dekblad1_glad'] : 0;$dekblad 1_licht_generfd = $_POST['dekblad1_licht_generfd'] ?$_POST['dekblad1_generfd'] : 0;$dekblad 1_generfd = $_POST['dekblad1_generfd'] ?$_POST['dekblad1_generfd'] : 0;$dekblad 1_zwaar_generfd = $_POST['dekblad1_zwaar_generfd'] ?$_POST['dekblad1_zwaar_generfd'] : 0;$dekblad 1_grof_generfd = $_POST['dekblad1_grof_generfd'] ?$_POST['dekblad1_grof_generfd'] : 0;还是同样的错误...