ホームページ  >  記事  >  バックエンド開発  >  PHP および MySQL の動的ツリーを実装するための関数再帰 menu_PHP チュートリアル

PHP および MySQL の動的ツリーを実装するための関数再帰 menu_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:31:10783ブラウズ


ツリー メニューは、多くのデスクトップ アプリケーション システムで広く使用されており、その主な利点は、構造が明確であり、ユーザーが現在の場所を明確に把握できることです。ただし、Web 上のツリー メニューのアプリケーションでは、直接使用できる理想的な既成コンポーネントが存在しないため、プログラマは主に JavaScript を使用していくつかの単純なツリー構造のメニューを実装しますが、これらのメニューは で用意されることがよくあります。各メニュー項目と各メニュー項目間の階層関係を定義すると、別のメニュー構造が必要になることが多く、あまり便利ではありません。

関数の再帰について勉強した結果、この種のツリーメニューは再帰関数を通じてツリーメニューの表示を動的に変更でき、系列の数に制限がないことがわかりました。以下は、php(現在主流の開発言語)、MySQL(PHPとの最適な組み合わせ)、JavaScriptを使用して書いた動的ツリーメニューの処理コードです。興味のある方はフォローしてください。私がそれをどのように達成したかを見てください:)

まず、データベースが必要です。このデータベースでは、次のテーブルを作成します:

CREATE TABLE menu (
id tinyint(4) NOT NULL auto_increment,
parent_id tinyint(4) ) DEFAULT 0 NOT NULL,
name varchar(20),
url varchar(60),
Prima(最も完全な仮想ホスト管理システム)RY KEY (id)
);

このテーブルではidがインデックスです
Parent_idは上位メニューのID番号を保存するために使用され、第一階層メニューの場合は0になります
nameはメニューの名前で、ページに表示されるメニュー内容です
urlメニューが最終レベルのメニューの場合は、接続の URL アドレスを指定する必要があります。このフィールドは、他の最終レベル以外のメニューの場合は空です。データベースが利用可能な場合、いくつかのレコードを追加できます。 テストを実行するときに、いくつかのレコードを使用します。
INSERT INTO menu VALUES (1, 0, 人事管理,);
INSERT INTO menu VALUES (2, 0, communication,) ;
INSERT INTO menu VALUES (3, 1, ファイル管理, );
INSERT INTO menu VALUES (4, 1, 勤怠管理, http://localhost/personal/attendance.php
(現在の主流の開発言語として)
); INSERT INTO menu VALUES (5, 2, address book, ); INSERT INTO menu VALUES (6, 2, オンライン会議,);
INSERT INTO menu VALUES (7, 3, add file, http://localhost /personal/add_achive.php
(do INSERT INTO メニューの値 (8, 3、ファイルのクエリ、http://localhost/personal/search_archive.php
); メニューの値 (9, 3、ファイルの削除、http:// localhost/personal/delete_archive.php(現在の主流の開発言語として)
); INSERT INTO menu VALUES (10, 5, 通信レコードを追加, http://localhost/communication/add_address.php(現在の主流として)開発言語)
); INSERT INTO menu VALUES (11, 5, クエリ通信記録, http://localhost/communication/search_address.php( 現在主流の開発言語として)
); INSERT INTO menu VALUES (12 , 5, 通信記録を削除します, http://localhost/communication/delete_address.php(現在の主流の開発言語として)
); INSERT INTO menu VALUES (13, 6, 会議を開催します, http://localhost/ communication/convence_meeting.php(現在の主流の開発言語として)
); INSERT INTO menu VALUES(14,6,conference query, http://localhost/communication/search_meeting.php(現在の主流の開発言語として)
); レコードを追加するときは、最初のレベル以外のメニューのparent_idを上位レベルのメニューのID番号として指定する必要があることに注意してください。そうしないと、メニューが表示されません:)
わかりました。 !データベースの場合は、データベースからメニューを読み込み、php(現在主流の開発言語)
とJavaScriptで表示するのは以下の通り:)

1. JavaScriptスクリプト:
function ShowMenu(MenuID) { このスクリプトこれは非常に単純で、メニューがクリックされたイベントに応答するために使用されます。
2. CSS ファイル:
FONT-FAMILY: "Verdana", "フォントサイズ": 12px; :1px

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/509083.html技術記事ツリー メニューは、多くのデスクトップ アプリケーション システムで広く使用されています。その主な利点は、構造が明確であり、ユーザーが現在の位置を明確に把握できることです。でもウェブ上では…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。