Menu Horizontal Multi Level dengan jQuery

Home » , , , » Menu Horizontal Multi Level dengan jQuery


Didalam website pastinya ada menu, adanya menu bisa mempermudah dalam pengelompokan data atau suatu informasi yang telah dikumpulkan. Disini kita akan mencoba membuat Menu Horizontal Multi Level dengan bantuan jQuery dan plugin jquerycssmenu menu tersebut dapat kita rubah menjadi menu dropdown
Berikut contoh struktur html menu yang terdiri dari 3 level (menggunakan tag html  <ul> dan <li>)
<ul>
<li><a href="https://www.blogger.com/menu1.html">Menu 1</a></li>
<li><a href="https://www.blogger.com/menu2.html">Menu 2</a></li>
<li><a href="https://www.blogger.com/menu3.html">Menu 3</a>
<ul>
<li><a href="https://www.blogger.com/menu31.html">Sub Menu 3.1</a></li>
<li><a href="https://www.blogger.com/menu32.html">Sub Menu 3.2</a>
<ul>
<li><a href="https://www.blogger.com/menu321.html">Sub Menu 3.2.1</a></li>
<li><a href="https://www.blogger.com/menu322.html">Sub Menu 3.2.2</a></li>
<li><a href="https://www.blogger.com/menu323.html">Sub Menu 3.2.3</a></li>
</ul>
</li>
<li><a href="https://www.blogger.com/menu33.html">Sub Menu 3.3</a></li>
</ul>
</li>
<li><a href="https://www.blogger.com/menu4.html">Menu 4</a></li>
</ul>
dan kode html diatas menghasilkan
Kemudian tambahkan script berikut pada tag head
<link href="jquerycssmenu.css" rel="stylesheet" type="text/css"></link>

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="jquerycssmenu.js" type="text/javascript"></script>
Membuat menu dinamis dari Database
Untuk membuat menu dinamis , kita bisa menggunakan database untuk menyimpan data menunya, contoh :
CREATE TABLE 'menu' (
'id' tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,
'parent_id' tinyint(3) UNSIGNED NOT NULL DEFAULT '0',
'title' VARCHAR(100) NOT NULL DEFAULT '',
'url' VARCHAR(100) NOT NULL DEFAULT '',
'menu_order' tinyint(3) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY ('id')
) ENGINE=MyISAM;
Kemudian gunakan script php untuk membuat list menu dinamis yang diambil dari database dan tabel menu diatas
<?php
function get_menu($data, $parent = 0) {
static $i = 1;
$tab = str_repeat("\t\t", $i);
if (isset($data[$parent])) {
$html = "\n$tab<ul>";
$i++;
foreach ($data[$parent] as $v) {
$child = get_menu($data, $v->id);
$html .= "\n\t$tab<li>";
$html .= '<a href="'.$v->url.'">'.$v->title.'</a>';
if ($child) {
$i--;
$html .= $child;
$html .= "\n\t$tab";
}
$html .= '</li>';
}
$html .= "\n$tab</ul>";
return $html;
} else {
return false;
}
}

mysql_connect('localhost', 'root', '');
mysql_select_db('tes');

$result = mysql_query("SELECT * FROM menu ORDER BY menu_order");
while ($row = mysql_fetch_object($result)) {
$data[$row->parent_id][] = $row;
}

$menu = get_menu($data);
?>
.
Share this article :