Установите флажки HTML на основе значений базы данных

#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 меню.