Многострочный массив фреймов PHP

Я рассмотрел несколько примеров здесь, но многие из них либо слишком продвинуты для понимания PHP, либо их примеры слишком специфичны для их собственных проектов. В настоящее время я борюсь с очень простой частью формы PHP.

Я пытаюсь создать форму с несколькими флажками, каждому присваивается другое значение, я хочу, чтобы они были отправлены в переменную (массив?), Которую я могу повторить / использовать позже, в моем случае я отправлю проверенные значения в электронное письмо.

До сих пор я пробовал несколько вариантов, но ближайший я пришел к этому, это …

<form method='post' id='userform' action='thisform.php'> <tr> <td>Trouble Type</td> <td> <input type='checkbox' name='checkboxvar' value='Option One'>1<br> <input type='checkbox' name='checkboxvar' value='Option Two'>2<br> <input type='checkbox' name='checkboxvar' value='Option Three'>3 </td> </tr> </table> <input type='submit' class='buttons'> </form> <?php $checkboxvar[] = $_REQUEST['checkboxvar']; ?> 

Где бы я выбрал $ checkboxvar [] в своем письме. Неужели я об этом совершенно не так? Другая идея, которую я имел, заключалась в том, чтобы использовать множество утверждений if.

 <form method='post' id='userform' action='thisform.php'> <tr> <td>Trouble Type</td> <td> <input type='checkbox' name='checkboxvar[]' value='Option One'>1<br> <input type='checkbox' name='checkboxvar[]' value='Option Two'>2<br> <input type='checkbox' name='checkboxvar[]' value='Option Three'>3 </td> </tr> </table> <input type='submit' class='buttons'> </form> <?php if (isset($_POST['checkboxvar'])) { print_r($_POST['checkboxvar']); } ?> 

Вы передаете имя формы в виде массива, а затем можете получить доступ ко всем отмеченным ячейкам, используя сам var, который затем будет массивом.

Чтобы выполнить эхо-проверку в вашем электронном письме, вы должны сделать следующее:

 echo implode(',', $_POST['checkboxvar']); // change the comma to whatever separator you want 

Пожалуйста, имейте в виду, что вы всегда должны дезинфицировать свой вход по мере необходимости.

Для записи официальные документы на этом существуют: http://php.net/manual/en/faq.html.php#faq.html.arrays

добавьте [] в имя атрибутов во входном теге

  <form action="" name="frm" method="post"> <input type="checkbox" name="hobby[]" value="coding"> coding &nbsp <input type="checkbox" name="hobby[]" value="database"> database &nbsp <input type="checkbox" name="hobby[]" value="software engineer"> soft Engineering <br> <input type="submit" name="submit" value="submit"> </form> 

для PHP-кода:

 <?php if(isset($_POST['submit']){ $hobby = $_POST['hobby']; foreach ($hobby as $hobys=>$value) { echo "Hobby : ".$value."<br />"; } } ?> 

Вы должны использовать обозначение квадратных скобок, чтобы иметь значения, отправленные как массив:

 <form method='post' id='userform' action='thisform.php'> <tr> <td>Trouble Type</td> <td> <input type='checkbox' name='checkboxvar[]' value='Option One'>1<br> <input type='checkbox' name='checkboxvar[]' value='Option Two'>2<br> <input type='checkbox' name='checkboxvar[]' value='Option Three'>3 </td> </tr> </table> <input type='submit' class='buttons'> </form> 

Обратите внимание, однако, что будут отправлены только значения только отмеченных флажков.

Попробуйте это, для Loop

 <form method="post"> <?php for ($i=1; $i <5 ; $i++) { echo'<input type="checkbox" value="'.$i.'" name="checkbox[]"/>'; } ?> <input type="submit" name="submit" class="form-control" value="Submit"> </form> <?php if(isset($_POST['submit'])) { $check=implode(", ", $_POST['checkbox']); print_r($check); } ?> 
 if (isset($_POST['submit'])) { for($i = 0; $i<= 3; $i++){ if(isset($_POST['books'][$i])) $book .= ' '.$_POST['books'][$i]; }