2013-02-04 42 views

回答

0

我敢肯定,除非你以某種方式破解它。我最近自己需要這個,但得出的結論是沒有支持。沒有什麼對他們page of examples暗示,這將是可能的,而且

因爲選擇替代普通的HTML選擇字段的段落,你不需要做任何特殊,使之成爲瀏覽器工作沒有JavaScript。您不需要在後端做任何特殊的事情來處理數據 - 表單字段仍然可以正常提交。

似乎表明選擇只會增強本機選擇框的用戶體驗,並沒有真正增加任何複雜性。

0

是的,這是可能的,但我仍處於某種鬥爭中。

  <?php 
      $args = array(
       'type'   => 'post', 
       'orderby'  => 'term_group', 
       'hide_empty' => 0, 
       'hierarchical' => 0, 
       'parent'  => 0, 
       'exclude_tree' => '49,1,63' 
      ); 
      $topcats = get_categories($args); 
      ?> 

      <select class="chosen-select" multiple> 
       <?php 
        foreach ($topcats as $a) { 
         echo "<optgroup label='$a->name'>"; 
         $args = array(
          'child_of'  => $a->cat_ID, 
          'hide_empty' => false 
         ); 
         $children = get_terms('category', $args); 
         foreach ($children as $child) { 
          $cat = get_category($child->term_id); 
          $lvl = get_level($cat); 
          $space = ""; 
          for ($i = 1; $i < $lvl; $i++) { $space .= "&nbsp;&nbsp;"; } 
          echo "<option>$space $child->name</option>"; 
         } 
         echo "</optgouop>"; 
        } 
       ?> 
      </select> 

我在WordPress的工作,所以我裝類別和使用GET平砍我發現在互聯網上(我真的很抱歉,但不記得在哪裏,所以先生。作者,請見諒)

下面是黑客:

function get_level($category, $level = 0) 
{ 
    if ($category->category_parent == 0) { 
     return $level; 
    } else { 
     $level++; 
     $category = get_category($category->category_parent); 
     return get_level($category, $level); 
    } 
} 

真正的問題,我還是老樣子一直無法弄清楚是如何刪除單個選擇的處所。如果您使用此代碼並選擇一個選項,則空格將轉移到多個選定選擇框的選擇行中。

1

要從選擇標籤中刪除空格(& nbsp),您可以修改jq-Chosen以修剪它們。

在功能CHOICE_LABEL通過item.html.replace(/&nbsp;/g,'')替換item.html開始線173(選的1.4.2):

AbstractChosen.prototype.choice_label = function(item) { 

    if (this.include_group_label_in_selected && (item.group_label != null)) { 
    return "<b class='group-name'>" + item.group_label + "</b>" + item.html.replace(/&nbsp;/g,''); 
    } else { 
    return item.html.replace(/&nbsp;/g,''); 
    } 
};