How do I insert multiple checkbox values into a table?

…衆ロ難τιáo~ 提交于 2019-11-26 10:37:48

问题


I cant seem to find or figure out a working solution to insert multiple checkbox values from a form into a table. The closes I have come is inserting the value of merely one checkbox value into a table. Kindly point out how I can insert multiple checkbox values and not merely one.

Find below what I have so far:

My form:

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

My php file to read and insert the values into a table:

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

}

?>

回答1:


You should specify

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

as array.

Add [] to all names Days and work at php with this like an array.

After it, you can INSERT values at different columns at db, or use implode and save values into one column.


Didn't tested it, but you can try like this. Don't forget to replace mysql with mysqli.

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

}

?>



回答2:


You need to declare the array in the HTML via

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

Also you can insert multiple items with one query like this

$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() );

Also keep in mind that mysql_* functions are officially deprecated and hence should not be used in new code. You can use PDO or MySQLi instead. See this answer on SO for more information.




回答3:


I think this should work .. :)

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


来源:https://stackoverflow.com/questions/20176673/how-do-i-insert-multiple-checkbox-values-into-a-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!