我似乎找不到或想不出一个有效的解决方案来将表单中的多个复选框值插入到表中。我的结束是将仅一个复选框值的值插入到表中。请指出如何插入多个复选框值,而不仅仅是一个。
在下面找到我迄今为止拥有的:
我的表格:
<html>
<body>
<form method="post" action="chk123.php">
Flights on: <br/>
<input type="checkbox" name="Days" value="Daily">Daily<br>
<input type="checkbox" name="Days" value="Sunday">Sunday<br>
<input type="checkbox" name="Days" value="Monday">Monday<br>
<input type="checkbox" name="Days" value="Tuesday">Tuesday <br>
<input type="checkbox" name="Days" value="Wednesday">Wednesday<br>
<input type="checkbox" name="Days" value="Thursday">Thursday <br>
<input type="checkbox" name="Days" value="Friday">Friday<br>
<input type="checkbox" name="Days" value="Saturday">Saturday <br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
我的php文件读取并将值插入到表中:
<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$checkBox = $_POST['Days'];
if(isset($_POST['submit']))
{
for ($i=0; $i<sizeof($checkBox); $i++)
{
$query="INSERT INTO example (orange) VALUES ('" . $checkBox[$i] . "')";
mysql_query($query) or die (mysql_error() );
}
echo "Complete";
}
?>
您应该指定
<input type="checkbox" name="Days[]" value="Daily">Daily<br>
作为数组。
将[]
添加到所有名称Days
中,并在php中像数组一样使用它。
之后,您可以在数据库中的不同列中INSERT
值,或者使用implode
将值保存到一列中。
没有测试过,但你可以这样尝试。不要忘记用mysqli
替换mysql
。
<html>
<body>
<form method="post" action="chk123.php">
Flights on: <br/>
<input type="checkbox" name="Days[]" value="Daily">Daily<br>
<input type="checkbox" name="Days[]" value="Sunday">Sunday<br>
<input type="checkbox" name="Days[]" value="Monday">Monday<br>
<input type="checkbox" name="Days[]" value="Tuesday">Tuesday <br>
<input type="checkbox" name="Days[]" value="Wednesday">Wednesday<br>
<input type="checkbox" name="Days[]" value="Thursday">Thursday <br>
<input type="checkbox" name="Days[]" value="Friday">Friday<br>
<input type="checkbox" name="Days[]" value="Saturday">Saturday <br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$checkBox = implode(',', $_POST['Days']);
if(isset($_POST['submit']))
{
$query="INSERT INTO example (orange) VALUES ('" . $checkBox . "')";
mysql_query($query) or die (mysql_error() );
echo "Complete";
}
?>
您需要通过在HTML中声明数组
<input type="checkbox" name="Days[]" value="Daily">
你也可以用一个查询插入多个项目,比如这个
$query = "INSERT INTO example (orange) VALUES ";
for ($i=0; $i<count($checkBox); $i++)
$query .= "('" . $checkBox[$i] . "'),";
$query = rtrim($query,',');
mysql_query($query) or die (mysql_error() );
还要记住,mysql_*
函数是官方不推荐使用的,因此不应在新代码中使用。您可以使用PDO或MySQLi。有关更多信息,请参阅SO上的此答案。
我认为这应该有效..:)
<input type="checkbox" name="Days[]" value="Daily">Daily<br>
<input type="checkbox" name="Days[]" value="Sunday">Sunday<br>
我认为你应该$_POST[][],我试过了,它成功了:)),tks