2013-10-03 47 views
0

這很簡單先前選定的類別。PHP - 隱藏2類選項列表

當用戶填寫表格,他們可以將列表中兩類。一旦用戶從下拉菜單中選擇他們的第一個類別。我怎樣才能讓該類別不是第二個下拉菜單中的選項。

的問題是,用戶可以選擇相同類別的兩倍。下面是我的魅力:

  <li> 
       <select name="category_1" tabindex="5"> 
       <option value="">Choose a category...</option> 
       {foreach from=$cats item='cat'} 
        {if $cat.active} 
        <option value="{$cat.id}"{if $cat.id == $smarty.session.formVars.category_1} selected="selected"{/if}>{$cat.name} ({$cat.description})</option> 
        {/if} 
       {/foreach} 
       </select> 
      </li> 

      {if $smarty.session.formVars.category_2} 
      <li> 
       <select name="category_2"> 
       <option>Choose a category...</option> 
       {foreach from=$cats item='cat'} 
        {if $cat.active} 
        <option value="{$cat.id}"{if $cat.id == $smarty.session.formVars.category_2} selected="selected"{/if}>{$cat.name} ({$cat.description})</option> 
        {/if} 
       {/foreach} 
       </select> 
       <a href='#' class="category_delete">x</a> 
      </li> 
      {/if} 

這是當前JS去用它:

// Build category options 
var cat_master = ""; 
$("#cat_master li").each(function(index, element) { 
    cat_master += "<option value='" + $(element).find(".cat_id").text() + "'>" + $(element).find(".cat_name").text() + "</option>"; 
}); 

$(".category_add").click(function(e) { 

    var cat_count = $("#categories > li").size(); 

    if (cat_count < AuthJ.Post.category_limit) { 

    var next_cat = cat_count + 1; 
    var new_select = "<select name='category_" + next_cat + "'><option value=''>Choose a category ...</option>" + cat_master + "</select>"; 

    $("#categories").append("<li>" + new_select + "</li>"); 

    // TODO: Remove previously selected categories from the new options list 

    if (cat_count == (AuthJ.Post.category_limit - 1)) { 
     $(this).hide(); // Hide the add new category link if we're at the category limit 
    } 

    $('<a href="#" class="category_delete">x</a>') 
     .click(function(e){ deleteCategory(e, this); }) 
     .show() 
     .appendTo('#categories > li:last'); 
    } 

    e.preventDefault(); 
}); 
+0

刪除? – Maximus2012

+0

編輯的初始問題包括。 –

+0

你看看下面張貼的解決方案?你在你的應用程序中使用MySQL /數據庫嗎? – Maximus2012

回答

0

內部上下拉1的變化情況,得到下拉1的值(「#drop_down_2_id option [value = value_in_first_drop_down]」)。remove(); value_in_first_drop_down並使用以下語法從第二行刪除

$(「#drop_down_2_id option [value = value_in_first_drop_down]」)。

您仍然需要時用戶改變從第一滴他的選項選擇到處理此案。作爲第一刪除的元素必須被加回,然後將新選擇的元件是從第二個下拉其中對應於該jQuery代碼