ツリー メニューは、多くのデスクトップ アプリケーション システムで広く使用されています。その主な利点は、構造が明確であり、ユーザーが現在の位置を明確に把握できることです。ただし、Web 上のツリー メニューのアプリケーションでは、直接使用できる理想的な既成コンポーネントが存在しないため、プログラマは主に JavaScript を使用していくつかの単純なツリー構造のメニューを実装しますが、これらのメニューは で用意されることがよくあります。各メニュー項目と各メニュー項目間の階層関係を定義すると、別のメニュー構造が必要になることが多く、あまり便利ではありません。
関数の再帰について勉強した結果、この種のツリー メニューは再帰関数によってツリー メニューの表示を動的に変更でき、系列の数に制限がないことがわかりました。以下は、私が php、MySQL、JavaScript を使って書いた動的ツリー メニューの処理コードです。ご興味がございましたら、ぜひ私と一緒に実装方法をご覧ください:)
まず、データベースが必要です。このデータベースに次のテーブルを作成します。
「テーブル作成」メニュー (
id tinyint(4) NOT NULL auto_increment,
parent_id tinyint(4) デフォルト '0' NOT NULL,
名前 varchar(20)、
URL varchar(60),
主キー (ID)
);
この表では
idはインデックスです
parent_id は、前のメニューの ID 番号を保存するために使用されます。それが第 1 レベルのメニューの場合、それは 0 です
。
name はメニューの名前で、ページに表示されるメニューの内容です
url メニューが最終レベルのメニューの場合、このフィールドはこのアドレスを保存するために使用されます。他の最終レベルのメニューの場合、このフィールドは空です
。
さて、データベースができたので、いくつかのレコードを追加できます。テスト時に使用したいくつかのレコードを次に示します。
INSERT INTO メニュー値 ( '1', '0', '人事管理', '');
INSERT INTO メニュー値 ( '2', '0', '通信', '');
INSERT INTO メニュー値 ('3', '1', 'ファイル管理', '');
INSERT INTO メニュー値 ('4'、'1'、'勤怠管理'、'http://localhost/personal/attendance.php');
INSERT INTO メニュー値 ( '5', '2', 'アドレス帳', '');
INSERT INTO メニュー値 ( '6', '2', 'Web ミーティング', '');
INSERT INTO メニュー値 ( '7'、'3'、'ファイルの追加'、'http://localhost/personal/add_achive.php');
INSERT INTO メニュー値 ( '8'、'3'、'アーカイブの検索'、'http://localhost/personal/search_archive.php');
INSERT INTO メニュー値 ( '9'、'3'、'アーカイブの削除'、'http://localhost/personal/delete_archive.php');
INSERT INTO メニュー VALUES ('10', '5', '通信レコードの追加','http://localhost/communication/add_address.php');