У меня есть форма с 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>