Как опубликовать данные из выпадающего списка в таблицу фильтров в PHP?

#php

#php

Вопрос:

Я печатаю CSV-файл на веб-странице, следующий код считывает файл из каталога и отображает данные в табличном формате. Эта часть работает действительно хорошо.

Но мне нужно отфильтровать эту таблицу с помощью двух выпадающих списков, в одном из которых указан идентификатор сеанса, а во втором — дата начала.

Проблема в том, что я не могу передать значение из этих двух выпадающих списков в the, if ($v[0] != $session amp;amp; $row > 0) continue; где $v[] may have index 0 or 1 и $session имеет значение из выпадающих списков.

     <?php
    $dir = 'uploads/';
    $files = scandir($dir);
    ?>
    <form name="form1" method="post">
            <select class="form-control col-sm-5" onChange="document.forms['form1'].submit()" id="chooseterm" name="chooseterm">
                <option value="" selected>Choose Term</option>
                <?php
                    foreach ($files as amp;$value) {
                        echo '<option value="' . $value . '">' . $value . '</option>';
                    }
                ?>
            </select>
    <?php
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        $t = $_POST["chooseterm"];
        $filepath = "uploads/$t";
        $row = 0;
        $the_big_array = [];
        $unique_start_date = [];
        $unique_ids = array();
        if (($h = fopen("{$filepath}", "r")) !== false) {
            while (($data = fgetcsv($h, 1000, ",")) !== false) {
                $the_big_array[] = $data;
                $unique_ids[$data[0]] = true;
                $unique_start_date[$data[1]] = true;
            }
            fclose($h);
        }
    ?>



    <select class="form-control col-sm-5" onChange="document.forms['form1'].submit()" id="choosessionid" name="choosessionid">
            <?php foreach ($unique_ids as $k => $v) {echo '<option value="' . $k . '">' . $k . '</option>';}?>
    </select>

    <select class="form-control col-sm-5" onChange="document.forms['form1'].submit()" id="session_start_date" name="session_start_date">
            <?php foreach ($unique_start_date as $k => $v) {echo '<option value="' . $k . '">' . $k . '</option>';}?>
    </select>

    </form>

    <table class="table">
        <tbody>
        <?php
            array_shift($the_big_array);
            $temp = '';
            foreach ($the_big_array as $k => $v) {
                if (isset($_POST['choosessionid']) || ($_POST['session_start_date']) ) {
    $session_start_date = '';
    $session = '';
    if (isset($_POST['choosessionid'])){
        $session = $_POST['choosessionid'];
        if ($v[0] != $session amp;amp; $row > 0) continue;
    }
    if (isset($_POST['session_start_date'])){
        $session = $_POST['session_start_date'];
        if ($v[1] != $session amp;amp; $row > 0) continue;
    }
} //at $session I need values from dropdown choosessionid OR session_start_date else show all the results 

                $row  ;      
        ?>
        <?="<tr>"; ?>
        <?="<td>" . $v[0] . "</td>"; ?>
        <?="<td>" . $v[1] . "</td>"; ?>
        <?="<td>" . $v[2] . "</td>"; ?>
        <?="<td>" . $v[3] . "</td>"; ?>
        <?="</tr>"; ?>
        <?php } ?>
        </tbody>
    </table>

    <?php    
        }
    ?>
  

Комментарии:

1. Вы можете использовать jquery datatable для фильтрации: datatables.net

2. Я не хочу использовать какую-либо библиотеку

3. Я вижу, что в вашем коде вы указали имя и идентификатор для обоих выпадающих списков как «choosessionid», и вы не определили «session_start_date» .

4. ооо, здесь опечатка..