#php #html #sql #checkbox
Вопрос:
У меня есть проект с HTML PHP и базой данных SQL. Я разработал форму ввода HTML для сбора данных от пользователя и вывел выпадающее меню с помощью PHP. Он собирал данные из базы данных SQL с помощью запроса, и эти данные использовались для выпадающего списка, и пользователь может выбрать эти данные. Я использую следующие коды в разделе PHP.
$query2 = "SELECT Name FROM class ORDER BY Name"; $results2 = mysqli_query($connection, $query2); while($result = mysqli_fetch_array($results2)) { $Classes .= "lt;option value="{$result['Name']}"gt;{$result['Name']}lt;/optiongt;"; }
В моей базе данных есть несколько классов, таких как Class_A, Class_B, Class_C и т. Д. (Администратор может создать новый класс или удалить доступный класс. Затем, когда пользователь выбирает классы, отображение классов может отличаться в соответствии с настройками администратора.)
В разделе HTML-формы я использовал следующий код для отображения имен классов.
lt;pgt; lt;label for=" "gt;Classes Arelt;/labelgt;lt;brgt; lt;select name="Classes[]" size="3" multiple gt; lt;?php echo $Classes ?gt; lt;/selectgt; lt;/pgt;
Я пытался использовать этот процесс с помощью флажков (заменить выпадающий список флажками), но я не могу это исправить. Так что, если кто-то может дать правильный способ сделать это, это очень ценно.
Комментарии:
1. В чем была проблема с использованием
checkboxes
, которая остановила ваш прогресс?
Ответ №1:
Возможно, это то, что вам нужно использовать checkboxes
? name
Назначенный элементу ввода HTML использует array
синтаксис типа с именем из предоставленной базы данных
$sql = "select `name` from `class` order by `name`"; $res = $connection-gt;query( $sql ); while( $rs = res-gt;fetch_object() ) { $classes=sprintf( 'lt;labelgt;%1$s: lt;input type="checkbox" value="%1$s" name="Classes[%1$s]" /gt; lt;/labelgt;', $rs-gt;name ); }
Затем, чтобы обработать отправку формы после того, как пользователь установил один или несколько флажков, вы можете сделать:
foreach( $_POST['Classes'] as $index =gt; $value ){ // do things... }
Скорее всего, вам даже не нужно добавлять имя, поэтому, возможно Classes[]
, будет достаточно просто ввести имя. Пожалуйста, проясните проблему, которая возникла у вас при попытке использовать checkboxes
вместо select
меню.