Я хочу получить значение 1 или 0 из нескольких флажков в зависимости от того, установлены они или нет.
У меня есть строки полей
activity duration [checkbox] date
activity duration [checkbox] date
activity duration [checkbox] date
activity duration [checkbox] date
<select name="activities[]">
<option value="12">Football</option>
</select>
<input type="text" name="duration[]" placeholder="" />
<input type="checkbox" name="is_distance[]" value="1">
<input type="text" class="datepicker" name="datepicker[]" id="">
Когда поля имеют контент, они будут выглядеть примерно так
Football 90 1 2019-05-09
Cycling 120 0 2019-05-09
Cricket 70 0 2019-05-09
Basketball 90 1 2019-05-09
где 1 - флажок был установлен.
У меня есть код ниже, который получает значения.
foreach ( $_POST['activities'] as $key=>$value ) {
$dist_activity_id = $_POST['activities'][$key];
$dist_activity_duration = $_POST['duration'][$key];
$dist_date = $_POST['datepicker'][$key];
$dist_list_id = $list_id;
if(isset($_POST['is_distance'][$key])) {
$is_distance = $_POST['is_distance'][$key];
} else {
$is_distance = 0;
}
}
Выходные данные не сохраняют значения флажков в тех местах, где они были выбраны, все выбранные перемещаются наверх.
Football 90 1 2019-05-09
Cycling 120 1 2019-05-09
Cricket 70 0 2019-05-09
Basketball 90 0 2019-05-09
Может ли кто-нибудь помочь с этим?
if(isset($_POST['submit'])) {
if (count(array_filter($_POST['duration'])) == count($_POST['duration']) && count(array_filter($_POST['datepicker'])) == count($_POST['datepicker'])) {
foreach ( $_POST['activities'] as $key=>$value ) {
$dist_activity_id = $_POST['activities'][$key];
$dist_activity_duration = $_POST['duration'][$key];
$dist_date = $_POST['datepicker'][$key];
if(isset($_POST['is_distance'][$key])) {
$is_distance = $_POST['is_distance'][$key];
} else {
$is_distance = 0;
}
$dist_list_id = $list_id;
}
}else {
$alert = "<div class='alert alert-danger' role='alert'>Please enter required fields</div>";
}
}