@SteepNET

Select форма с multiple выбором, обработка результат?

Доброго дня! Заплелся я с школьной задачей, а точнее множественный выбор на форме и обработка результата..
А точнее не получается получить и обработать множественный выбор...
Делаю так
файл json
json
[{"Дата":"2022-02-11 17:59:18 ","День":"2022-02-11","Время":"17:59:18","Внутренний номер":"873","Оператор":"Билайн","Регион":"Республика Татарстан","Набранный номер":"+796777777777","Провайдер ID":"2952","Группа маршрута ID":"outrt-10","MNP Оператор":null,"MNP Оператор ID":null},
{"Дата":"2022-02-11 17:59:35 ","День":"2022-02-11","Время":"17:59:35","Внутренний номер":"871","Оператор":"Мегафон","Регион":"Курская область","Набранный номер":"+79207777777","Провайдер ID":"2961","Группа маршрута ID":"outrt-11","MNP Оператор":null,"MNP Оператор ID":null},
{"Дата":"2022-02-11 17:59:46 ","День":"2022-02-11","Время":"17:59:46","Внутренний номер":"725","Оператор":"Билайн","Регион":"Москва и Московская область","Набранный номер":"+79777777777","Провайдер ID":"2952","Группа маршрута ID":"outrt-10","MNP Оператор":null,"MNP Оператор ID":null}]


Код
php
<?php
$Json = file_get_contents('json.json');
$array = json_decode($Json,true);

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
<div>
<label for="operator">Оператор:</label>
  <select name="operator" id="operator" multiple>
    <option value="" hidden="">--- Выбери оператора ---</option>
    <option value="Билайн">Билайн</option>
    <option value="МТС">МТС</option>
    <option value="Мегафон">Мегафон</option>
    <option value="Yota">Yota</option>
  </select>
<!-- <button type="submit">Показать</button> -->
</div>

<div>
<label for="intnum">Внутренний номер:</label>
  <select name="intnum" id="intnum">
    <option value="" hidden="">--- Выбери номер ---</option>
    <option value="768">768</option>
    <option value="769">769</option>
    <option value="771">771</option>
  </select>
<!-- <button type="submit">Показать</button> -->
</div>

<div>
<label for="outrt">Группа маршрута:</label>
  <select name="outrt" id="outrt">
    <option value="" hidden="">--- Выбери группу ---</option>
    <option value="outrt-12">outrt-12</option>
    <option value="outrt-13">outrt-13</option>
  </select>
<!-- <button type="submit">Показать</button> -->
</div>

<div>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
    Начиная с :
    <input type="date" name="dateFrom" value="<?php echo date('Y-m-d'); ?>" />
    По:
    <input type="date" name="dateTo" value="<?php echo date('Y-m-d'); ?>" />
    <input type="submit" name="submit" value="Показать"/>
</form>
</div>

</form>
<form onsubmit="document.getElementById('submitButton').disabled = true">
    <input id="submitButton" type="submit" value="Сбросить форму"/>
</form>
<br>


<?php
$operator = filter_input(INPUT_POST, 'operator', FILTER_SANITIZE_STRING);
$intnum = filter_input(INPUT_POST, 'intnum', FILTER_SANITIZE_STRING);
$outrt = filter_input(INPUT_POST, 'outrt', FILTER_SANITIZE_STRING);
$dateFrom = filter_input(INPUT_POST, 'dateFrom', FILTER_SANITIZE_STRING);
$dateTo = filter_input(INPUT_POST, 'dateTo', FILTER_SANITIZE_STRING);

foreach($array as $key => $one)

{
  if (($one['Оператор'] == $operator) && ($one['День'] >= $dateFrom && $one['День'] <= $dateTo)) {
    
    echo 'Дата: '.$one['Дата'].', Оператор: '.$one['Оператор'].', Внутренний номер: '.$one['Внутренний номер'].', Группа маршрута ID: '.$one['Группа маршрута ID'].'<br>';
    
    $count++;
  } elseif (($one['Внутренний номер'] == $intnum) && ($one['День'] >= $dateFrom && $one['День'] <= $dateTo)){
    echo 'Дата: '.$one['Дата'].', Оператор: '.$one['Оператор'].', Внутренний номер: '.$one['Внутренний номер'].', Группа маршрута ID: '.$one['Группа маршрута ID'].'<br>';
    $count++;
  } elseif (($one['Группа маршрута ID'] == $outrt) && ($one['День'] >= $dateFrom && $one['День'] <= $dateTo)) {
    echo 'Дата: '.$one['Дата'].', Оператор: '.$one['Оператор'].', Внутренний номер: '.$one['Внутренний номер'].', Группа маршрута ID: '.$one['Группа маршрута ID'].'<br>';
    $count++;
  } /*elseif ($one['День'] >= $dateFrom && $one['День'] <= $dateTo){
    echo 'Дата: '.$one['Дата'].', Оператор: '.$one['Оператор'].', Внутренний номер: '.$one['Внутренний номер'].', Группа маршрута ID: '.$one['Группа маршрута ID'].'<br>';
    $count++;
  }*/
}
echo '<br>'.'Совершено: '.$count.' звонка.';


Добавляю к name="operator[]" но ломается вывод...
Никак не прикручу цикл
Замысел выбирать несколько operator и выводить эти данные с учетом выбранных дат...
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы