簡體   English   中英

PHP-隱藏類別2選項列表中的先前選擇的類別

[英]PHP - Hide Previously Selected Category from Category 2 Option List

很簡單

用戶填寫表單時,可以將列表分為兩類。 一旦用戶從下拉菜單中選擇了他們的第一個類別。 如何使該類別成為第二個下拉菜單中的選項。

問題是,用戶可以選擇兩次相同的類別。 這是我的基礎:

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

在下拉列表1的更改事件中,在value_in_first_drop_down中獲取下拉列表1的值,並使用以下語法從第二個下拉列表中刪除

$(“#drop_down_2_id選項[value = value_in_first_drop_down]”)。remove();

當用戶從第一個下拉菜單更改其選項選擇時,您仍然需要處理這種情況。 由於首先刪除的元素必須重新添加,然后從第二個下拉列表中刪除新選擇的元素

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM