Как сделать множественный выбор в фильтре?
на сайте есть фильтр, один из его пунктов это выбор микрорайона(taxonomy), сейчас это сделано в виде selecta(и фильтр работает) , но мне нужно чтобы это было в виде чекбоксов
<?php
if( $terms = get_terms( array( 'taxonomy' => 'houses', 'orderby' => 'name' ) ) ) :
echo '<select name="categoryfilter"><option value="">Выберите микрорайон</option>';
foreach ( $terms as $term ) :
echo '<option value="' . $term->term_id . '">' . $term->name . '</option>';
endforeach;
echo '</select>';
endif;
?>
functions.php
if( isset( $_POST['categoryfilter'] ) )
$args['tax_query'] = array(
array(
'taxonomy' => 'houses',
'field' => 'id',
'terms' => $_POST['categoryfilter']
)
);
Пробовал так
<?php
if( $terms = get_terms( array( 'taxonomy' => 'houses', 'orderby' => 'name' ) ) ) :
echo '<div>';
foreach ( $terms as $term ) :
echo '<label><input type="checkbox" name="categoryfilter" value="' . $term->term_id . '">' . $term->name . '</label>';
endforeach;
echo '</div>';
endif;
?>
Но не работает
Ответы (3 шт):
Автор решения: Darth KYL
→ Ссылка
нет типа у тега input
echo '<label><input type="checkbox" name="categoryfilter[]" value="' . $term->term_id . '">' . $term->name . '</label>';
Автор решения: Simon
→ Ссылка
Попробуйте таким образом:
<?php
if( $terms = get_terms( array( 'taxonomy' => 'houses', 'orderby' => 'name' ) ) ) :
echo '<div>';
foreach ( $terms as $term ) :
echo '<label><input type="checkbox" name="categoryfilter[]" value="' . $term->term_id . '">' . $term->name . '</label>';
endforeach;
echo '</div>';
endif;
?>
К вашему коду добавил type="checkbox", а так же в name="categoryfilter[]" чтобы можно было передать значения вашего чекбокса в качестве массива.
Автор решения: Сергей В.
→ Ссылка
Предлагаю радиокнопки, так как ваш код не готов принимать несколько выбранных значений
echo '<label><input type="radio" name="categoryfilter" value="' . $term->term_id . '">' . $term->name . '</label>';