2015-06-02 3 views
0

Я чувствую, что я действительно чего-то здесь не вижу. Я сделал некоторые ручные настройки на коротком (Wordpress) скрипте и попытался установить <select><option> на «selected», если он был выбран. Для этого я попытался выяснить, соответствует ли значение $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

это может быть совершенно не связанным, но вы понимаете, что у вас есть скобки на названии выбора? что, безусловно, заставляет меня думать, что интерпретация значения должна быть массивом. Если бы это был мульти-выбор, было бы разумно, что это его массив в get, в любом случае foeach на listing_cat, посмотрите, что там –

ответ

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); 


} 
} 
Смежные вопросы