<input type="checkbox" class='form' name="checkbox_1" /> <input type="checkbox" class='form' name="checkbox_2" /> <input type="checkbox" class='form' name="checkbox_3" /> ......... <input type="checkbox" class='form' name="checkbox_10" />
Сообщение отправлено с использованием метода POST. определить, какие из флажков и записать их номера в порядке возрастания. Разделите все числа пробелами (не новыми строками) и не используйте HTML-форматирование.
Например:
Если отмечены флажки 3, 5 и 10.
Ouput будет:
3 5 10
Измените разметку на что-то вроде
<input type="checkbox" class='form' value="1" name="checkbox[]" /> <input type="checkbox" class='form' value="2" name="checkbox[]" /> <input type="checkbox" class='form' value="3" name="checkbox[]" />
и для получения представленных значений используйте простой цикл
foreach($_POST['checkbox'] as $checkbox){ echo $checkbox . ' '; }
Код HTML:
<input type="checkbox" name="arrayValue[]" value="value1" > value1 <br /> <input type="checkbox" name="arrayValue[]" value="value2" > value2 <br /> <input type="checkbox" name="arrayValue[]" value="value3" > value3 <br /> <input type="checkbox" name="arrayValue[]" value="value4" > value4 <br />
PHP-код ::
$checkBoxValue = join(", ", $_POST['arrayValue']); // here first (,) is user-define // means, you can change it whatever // you want, even if it can be (space) or others
теперь вы получаете всю ценность «checkbox» в одной переменной
Итерации над массивом $_POST
и используйте preg_match()
чтобы вывести номер, если он начинается с «checkbox_»:
$checked = array(); foreach ($_POST as $k => $v) { if (preg_match('|^checkbox_(\d+)$!', $k, $matches) { $checked[] = $matches[1]; } } echo implode(' ', $matches);
<?php $checked = array(); foreach ($_POST as $k => $v) { $subject = $k; $pattern = '/^checkbox_(\d+)$/'; if (preg_match($pattern, $subject, $matches)) { $checked[] = $matches[1]; } } asort($checked); foreach ($checked as $key=>$value) echo $value .' '; ?>
Для каждого параметра Вы выбираете значение Checkbox, которое вы можете использовать ниже, чтобы получить значения из флажка, или нет.
На моей странице формы (с понедельника по воскресенье)
<input type="checkbox" name="checked[]" class="onoffswitch-checkbox" id="mononoffswitch" value="Mon" checked>
В моем PHP-коде
function IsChecked($chkname,$value) { if(!empty($_POST[$chkname])) { foreach($_POST[$chkname] as $chkval) { if($chkval == $value) { return true; } } } return false; } if(IsChecked('checked','Mon')) { $checkedMon = "Y"; }else { $checkedMon = "N"; } if(IsChecked('checked','Tue')) { $checkedTue = "Y"; }else { $checkedTue = "N"; } if(IsChecked('checked','Wed')) { $checkedWed = "Y"; }else { $checkedWed = "N"; } if(IsChecked('checked','Thur')) { $checkedThur = "Y"; }else { $checkedThur = "N"; } if(IsChecked('checked','Fri')) { $checkedFri = "Y"; }else { $checkedFri = "N"; } if(IsChecked('checked','Sat')) { $checkedSat = "Y"; }else { $checkedSat = "N"; } if(IsChecked('checked','Sun')) { $checkedSun = "Y"; }else { $checkedSun = "N"; }
Теперь вы можете получить эти значения переменных и использовать их в своей инструкции Insert Into …
Как это
$addweekdays = mysqli_query($conn, "INSERT INTO weekdays(id,monday,tuesday,wednesday,thursday,friday,saturday,sunday) VALUES('$Id', '$checkedMon', '$checkedTue', '$checkedWed', '$checkedThur','$checkedFri','$checkedSat','$checkedSun')") ...
$checked = array(); foreach ($_POST as $k => $v) { $subject = $k; $pattern = '/^checkbox_(\d+)$/'; if (preg_match($pattern, $subject, $matches)) { $checked[] = $matches[1]; } } asort($checked); foreach ($checked as $key=>$value) echo $value .' ';
возьмите массив для имени вашего флажка как name="checkbox[]"
и используйте одно и то же имя для всех своих флажков. После отправки вашей формы установите флажки с установленным флажком, используя следующий код:
<?php $chk=""; foreach($_POST['checkbox'] as $checkbox) { $chk=$chk.$checkbox; } echo $chk; ?>