Можно ли иметь параметр без значения, не отправляя его в виде параметра GET в форме? - PullRequest
0 голосов
/ 09 марта 2019

У меня есть форма с 2 выберите. Когда оба установлены, все работает нормально. Но когда любой из них не установлен, я получаю сообщение об ошибке, потому что в адресной строке не может быть пустых значений.

Теперь я мог бы выполнить некоторую обработку на стороне сервера, чтобы игнорировать ее, но я бы предпочел не отправлять ее вообще. Я прочитал много похожих вопросов и перепробовал все ответы, но он просто отправляет их любым способом!

Мне нужно, чтобы при выборе «Все жанры» или «Все языки» не отправлялось никаких параметров в адресной строке для этого конкретного выбора.

<form action="" method="GET" id="filter">

    <?php
        if( $terms = get_terms( array( 'taxonomy' => 'genre', 'orderby' => 'name' ) ) ) : 

            echo '<select name="genrefilter"><option value="">All Genres</option>';
            foreach ( $terms as $term ) : ?>
                <option <?php echo ((isset($_GET['genrefilter']) && $_GET['genrefilter'] == $term->term_id) ? 'selected="selected"' : '') ?> value="<?php echo $term->term_id;?>"><?php echo $term->name;?></option>
                <?php
            endforeach;
            echo '</select>';
        endif;
    ?>

    <?php
        if( $terms = get_terms( array( 'taxonomy' => 'language', 'orderby' => 'name' ) ) ) : 

            echo '<select name="languagefilter"><option value="">All languages</option>';
            foreach ( $terms as $term ) : ?>

                <option <?php echo ((isset($_GET['languagefilter']) && $_GET['languagefilter'] == $term->term_id) ? 'selected="selected"' : '') ?> value="<?php echo $term->term_id;?>"><?php echo $term->name;?></option>

                <?php
            endforeach;
            echo '</select>';
        endif;
    ?>
    <button>Apply filter</button>       
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...