Получить выбранное значение из выпадающего меню, из массива?

Я чувствую, что действительно чего-то здесь не хватает. Я сделал несколько ручных настроек для короткого (WordPress) сценария и попытался установить <select><option> на «выбран», если он был выбран. Чтобы добиться этого, я попытался выяснить, $term->id = similar к выбранному значению параметра (который также является идентификатором). Пока все хорошо, но я не могу получить представленный <select><option>, Все это говорит о «массиве».

Ниже мой сценарий. Кто-нибудь видит, что я здесь делаю не так? Чтобы было ясно, похоже, все о $_GET["listing_cat"] Вот. Также, когда я пытаюсь напечатать $_GET["listing_cat"] в пределах foreach все это выводит массив.

<form method="get" action="<?php echo trailingslashit( home_url() ); ?>" class="custsearch">
<select name="listing_cat[]">
<option value="1" disabled="disabled" <?php if(!count($_GET)>0 || !$_GET["listing_cat"] ){ echo 'selected="selected"';} ?>>Pls choose</option>
<?php
$cat_args = array(
'orderby'           => 'id',
'parent'        => 0,
'hide_empty'    => false
);
$terms = get_terms('listing_category', $cat_args );
foreach ($terms as $term) {
printf( '<option class="level-0" value="' . $term->term_id .'"');
if($_GET["listing_cat"] == $term->term_id) { echo 'selected="selected"'; }
printf( '>%s</option>', $term->slug, $term->name );
}

?>
</select>
</form>

0

Решение

Хорошо, вот все, что мне было нужно .. вполне логично;). Я поместил его в функцию и мне нужно было проверить in_array ():

//category in dropdown
function the_refine_category_ui2() {
$cat_args = array(
'orderby'           => 'id',
'parent'        => 0,
'hide_empty'    => false
);
$terms = get_terms('listing_category', $cat_args );
foreach ($terms as $term) {

printf( '<option class="level-0"');
if( in_array( $term->term_id, $_GET["listing_cat"] )) { echo 'selected ';}

printf('value="' . $term->term_id .'"');
printf( '>%s' . $term->term_id .'</option>', $term->slug, $term->name );


}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]