1

以下のシナリオを処理するために存在する場合、いくつかのサンプルコードを探しています。

新しいアイテムを追加するときに ebay.com が使用するようなカスケード (フィルタリング) 選択ボックスをいくつか作成したいと思います。

困っているので

  1. 多くの親子関係が存在する可能性があります。4 つ以上のサブカテゴリを持つカテゴリが存在する場合があります。
  2. 誰かが親カテゴリをクリックしたときにjqueryを介して選択ボックスを動的に追加する必要があるのか​​ 、それともページ上に多くの非表示の選択ボックスがあり、必要に応じて非表示/表示する必要があるのか​​ わかりません。
  3. 私はこれを調べることができると確信していますが、コードビハインドでjavascriptを介して動的に追加されたフォーム要素を使用する方法はまだわかりません。

eBayがどのように行っているか知っている人はいますか?

データは次のようになります。

通貨 アメリカ -> ドル -> モーガン -> 1894-98

また

切手 -> 米国 -> 表紙 -> FDC -> 1931-1940

データは、構造を持つ sql テーブルに格納されます。

ID | カテゴリテキスト | 親ID

ツリーで選択された各レベルは、その右側に新しい選択ボックスが生成され、使用可能な子の値が生成されます。

4

3 に答える 3

0

ドリルダウンメニューが必要なようです。これが良いものです:http://filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/

2番目と3番目の例を参照してください。

于 2012-07-18T03:12:01.617 に答える
0

Looks like I'm posting my own answer to my first question.

Here's a general outline of what I'm going to do, I haven't coded it up yet but I spent the evening thinking though the solution and believe it will work.

  1. De-normalize the data. Instead of having the data in the format of

    Id | CategoryText | ParentId

    I'll store things as

    Id | CategoryTextLevel1 | CategoryTextLevel2 ect.

    I did some research and saw at this point in time ebay's category structure only goes down six levels and that will work for me aswell I believe.

  2. On page load, call service to get first level of categories.

  3. Attach event handler to each select box item, not sure how I'll do this yet but I think I might be able to just have one globally on option.click()

  4. Select box items will be stored in the format <option id="x_y" value="y" where x is the level of category (1-6) and y is the category Id in the database

  5. On Option click

    1. Loop though select boxes 1-6 and remove if id is greater then the index of the item we clicked on

    2. Loop through all selected options on the page. If we're at a leaf node, enable save/continue button and show summary of selected category chain.

I still have some stuff to figure out like when/how to bind all the events in jquery but this is the basic outline I'll use to code the page.

Also, even though I'm posting an answer. If anyone else has something similiar coded up on their site, feel free to post a link so I can compare with my implementation :-)

于 2012-07-18T02:02:10.660 に答える
0

これは以前に尋ねられたと思いますが、これは質問の Jquery 部分のコードです。

 var numbers = [1, 2, 3, 4, 5];

for (i=0;i<numbers.length;i++){
   $('<option/>').val(numbers[i]).html(numbers[i]).appendTo('#items');
}

https://stackoverflow.com/a/3446086

次の部分は、オブジェクト構成の問題です。これは、親子関係について知っていることを理解した場合にのみ、実際に答えることができます。ebay がどのように機能するかは、あなたの役に立たないかもしれません。

于 2012-07-17T17:51:52.017 に答える