5

次のように簡単に閲覧できるように、カテゴリツリーを3列に分割する構成ページを作成しています。

**Column 1**            **Column 2**             **Column3**  
   Category1               Category3                Category5
    *SubCategory1*         Category4                  *SubCategory5*
   Category2                 *SubCategory4*           *SubCategory6*
     *SubCategory2*        etc.
     *SubCategory3*  

jsp、jquery、struts2を使用しています。私がやろうとしているのは、カテゴリ/サブカテゴリが表示される順序を構成することです。今、私はそのような構造を示し、列から別の列にそれらをドラッグし、列のカテゴリを並べ替え、サブカテゴリを並べ替えることができます。jqueryを使用してHTMLを直接変更しますが、取得する方法がわかりません。変更された構造のデータをDBに永続化します。

4

2 に答える 2

5

私は最近、私の個人的なプロジェクトで同様のことをしなければなりませんでしたが、私が書いていた機能を実際に使用することはありませんでしたが、使用したコードは次のとおりです。

function refactor() {
    var array = jQuery.makeArray($('ul#remapped > li:not(.target)'));
    var mappedArray = jQuery.map(array, function(i) {
        var merged = $(i).find('ul.merge > li:not(.target) > span');
        return {
            column: $(i).children('span').text(),
            merged: jQuery.map(jQuery.makeArray(merged), function(mi) { return { column: mi.innerText }; })
        };
    });

    var xml = '<columns>';
    jQuery.each(mappedArray, function(index, item) {
        xml += '\n\t<column>';
        xml += '\n\t\t<name>' + item.column + '</name>';
        if (item.merged.length > 0) {
            xml += '\n\t\t\t<merged>';
            jQuery.each(item.merged, function(mindex, mitem) {
                xml += '\n\t\t\t\t<name>' + mitem.column + '</name>';
            });
            xml += '\n\t\t\t</merged>';
        }
        xml += '\n\t</column>';
    });
    xml += '\n</columns>';

    $('div#result').load('/Tools/Csv/Refactor', { mapping: xml });
}

基本的に、ユーザーは UI を使用して好きなようにドラッグ アンド ドロップし、必要な構造を作成します。次に、このメソッドを実行するボタンをクリックします。

$('ul#remapped') クエリは、新しい構造を含む (コード内の) 要素です。次に、DOM 構造に基づいて追加のクエリを実行し、DOM から必要な値を抽出し、 XML 文字列を生成し、サーバーにポストしました。

これはまさにあなたが必要としているものではないと確信していますが、必要に応じて変更できるほど十分に近いことを願っています.

于 2008-12-23T17:50:47.927 に答える
0

構造はドラッグアンドドロップで変更されると思います。構造に変更が発生するたびにajax呼び出しを行い、CategorySucategoriesテーブルのデータを更新できます。私はあなたのdb構造を知らないので、それについても仮定しました。

于 2008-12-23T17:40:23.237 に答える