Php Programming Code Examples
Php > Databases Code Examples
Building dynamic menus with PHP & MySQL (ADO), JavaScript and CSS
Building dynamic menus with PHP & MySQL (ADO), JavaScript and CSS
<?
// Create database and table code for MySQL below
//CREATE DATABASE [dbname]
//CREATE TABLE `menu` (
// `id` int(3) NOT NULL default '0',
// `menu_item` varchar(32) NOT NULL default '',
// PRIMARY KEY (`id`)
//) TYPE=MyISAM;
// Stylesheet code below (inline or external works fine)
?>
<HTML>
<HEAD>
<STYLE>
.out {
border:0px;
background-color: #6633CC;
color: #FFEEFF;
cursor: hand;
}
.over {
background-color: #9EB5E9;
color: #FFFFFF;
font-size: 10px;
cursor: default;
}
.down {
background-color: #CFCFEF;
color: #666666;
cursor: default;
}
</STYLE>
</HEAD>
<BODY>
<?
// ADO Connection description
$db = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=127.0.0.1;DATABASE=dbname;UID=user;PWD=password; OPTION=35";
// Create connection object
$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
// Open the database
$conn->Open($db);
// Execute the query
$rs = $conn->Execute("SELECT id, menu_item FROM menu ORDER by id;");
// Get section / menu name
$section = $_REQUEST['section'];
// Remove URL encoded chars
$decoded = rawurldecode($section);
// Remove white spaces from menu item for JavaScript to handle
preg_replace('/.\s/', '', $decoded);
// Build the memu
echo "<table width='70%' border='0' cellpadding='0' cellspacing='0' class='tny'><tr>";
while (!$rs->EOF) {
echo "<td style='width:1px;'></td>
<td id='" . str_replace(" ", "", $rs->Fields[menu_item]->Value) . "' width='95' height='15' align='center'";
if ($section != $rs->Fields[menu_item]->Value) {
echo " class='out'
onMouseOver=\"this.className='over'\"
onMouseOut=\"this.className='out'\"
onMouseDown=\"this.className='down'\"
onClick=\"location.href='" . $PHP_SELF . "?sctn=" . $rs->Fields[menu_item]->Value . "&id=" . $rs->Fields[id]->Value . "';\"> " .
$rs->Fields[menu_item]->Value . " </td>\n";
} else {
echo " class='out'> " . $rs->Fields[menu_item]->Value . " </td>\n";
}
$rs->MoveNext();
}
echo "<script language=\"JavaScript\">\n" .
"document.all." . str_replace(" ", "", $decoded) . ".className='over';\n" .
"</script>\n" .
"</tr>
</table>";
?>