我创建了以下复选框表单来显示爱好。数组在同一个单元格中进入数据库,这是完美的。然而,在我提交之前,页面上就出现了以下错误。(我是这方面的新手,任何帮助都将不胜感激:)
未定义的索引:中的爱好(第29行)警告:内爆():中传递的参数无效(第29行)
代码:
$checkbox=implode(',', $_POST['hobbies']);
if(isset($_POST['Submit'])){
//for($i=0; $i<sizeof($hobbies);$i++){
$query=queryMysql("INSERT INTO hobbies VALUES ('$user', '" .$checkbox. "')");
mysql_query($query) or die(mysql_error());
echo "record is inserted";
}
echo <<<_END
<body>
<form method='post' action='hobbies.php' >
<input type="checkbox" name="hobbies[]" value="reading">Reading<br>
<input type="checkbox" name="hobbies[]" value="cycling">Cycling<br>
<input type="checkbox" name="hobbies[]" value="swimming">Swimming<br>
<input type="checkbox" name="hobbies[]" value="running">Running<br>
<input type="submit" name='Submit' value='Submit'/></form>
</body>
</html>
_END;
?>
也许把这一行放在if(isset($_POST['Submit'])){ }
条件中:$checkbox=implode(',', $_POST['hobbies']);
。
试试这个代码,我希望它能工作:-
if(isset($_POST['Submit'])){
$checkbox=implode(",", $_POST['hobbies']);
$query=queryMysql("INSERT INTO hobbies VALUES ('$user', '$checkbox')");
mysql_query($query) or die(mysql_error());
echo "record is inserted";
}
echo <<<_END
I think you need to more customization like this
if(isset($_POST['Submit'])){
if(is_array( $_POST['hobbies']) && count( $_POST['hobbies']) >0){
$checkbox=implode(',', $_POST['hobbies']);
//for($i=0; $i<sizeof($hobbies);$i++){
$query=queryMysql("INSERT INTO hobbies VALUES ('$user', '" .$checkbox. "')");
mysql_query($query) or die(mysql_error());
echo "record is inserted";
}
echo <<<_END
} ?>
<body>
<form method='post' action='hobbies.php' >
<input type="checkbox" name="hobbies[]" value="reading">Reading<br>
<input type="checkbox" name="hobbies[]" value="cycling">Cycling<br>
<input type="checkbox" name="hobbies[]" value="swimming">Swimming<br>
<input type="checkbox" name="hobbies[]" value="running">Running<br>
<input type="submit" name='Submit' value='Submit'/></form>
</body>
</html>
<?php
_END;
?>