S
S
SteepNET2022-02-16 18:40:43
PHP
SteepNET, 2022-02-16 18:40:43

Select form with multiple selection, processing result?

Good day! I got stuck with a school task, or rather a multiple choice on the form and processing the result ..
Or rather, I can’t get and process the multiple choice ...
I do this
json file

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}]


The code
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.' звонка.';


I add to name="operator[]" but the output breaks...
I won't screw up the loop in any way.
The idea is to select several operators and display this data taking into account the selected dates...

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question