14

我似乎找不到或想出一个可行的解决方案来将表单中的多个复选框值插入到表格中。我来的结束是将仅一个复选框值的值插入表中。请指出我如何插入多个复选框值而不仅仅是一个。

在下面找到我到目前为止的内容:

我的表格:

<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";

}

?>
4

4 回答 4

31

你应该指定

<input type="checkbox" name="Days[]" value="Daily">Daily<br>

作为数组。

添加[]到所有名称Days并像数组一样在 php 中工作。

之后,您可以INSERT在 db 的不同列中取值,或者使用implode并将值保存到一列中。


没有测试过,但你可以试试这样。不要忘记替换mysqlmysqli.

<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";

}

?>
于 2013-11-24T16:07:41.777 回答
4

您需要通过在 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 上的此答案。

于 2013-11-24T16:11:17.400 回答
0

我认为这应该工作.. :)

<input type="checkbox" name="Days[]" value="Daily">Daily<br>
<input type="checkbox" name="Days[]" value="Sunday">Sunday<br>
于 2013-11-24T16:09:01.303 回答
-2

我认为你应该 $_POST[][],我试过了,它可以工作:)),tks

于 2020-04-29T17:22:20.250 回答