Получить 1 или 0 значение нескольких флажков в зависимости от того, установлены ли они - PullRequest
0 голосов
/ 10 мая 2019

Я хочу получить значение 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>";
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...