Как вставить несколько значений флажка в таблицу?
Кажется, я не нашел или не нашел рабочего решения, чтобы вставить несколько значений флажка из формы в таблицу. Закрытие, которое я пришел, вставляет значение только одного значения флажка в таблицу. Просьба указать, как я могу вставить несколько значений флажка, а не только один.
Найдите ниже, что я до сих пор:
Моя форма:
<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";
}
?>
Ответы
Ответ 1
Вы должны указать
<input type="checkbox" name="Days[]" value="Daily">Daily<br>
как массив.
Добавьте []
ко всем именам Days
и работайте с php с этим, как с массивом.
После этого вы можете использовать значения INSERT
в разных столбцах в db или использовать implode
и сохранять значения в один столбец.
Не тестировал, но вы можете попробовать это. Не забудьте заменить mysql
на 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
Вам нужно объявить массив в 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 для получения дополнительной информации.
Ответ 3
Я думаю, что это должно работать..:)
<input type="checkbox" name="Days[]" value="Daily">Daily<br>
<input type="checkbox" name="Days[]" value="Sunday">Sunday<br>