ik heb een stukje php van de site gehaald voor 3drop down menu's. zie voorbeeld : "http://www.allesvooruwmotor.nl/index.php?main_page=page_2" eerst een merk selecteren daarna kun je de types kiezen en daarna het bouwjaar, om het moment dat ik heb bouwjaar selecteer moet d.m.v een stukje php dit vergeleken worden met een ander tabel in de SQL database waarin dus de articelen bij deze betreffende motor horen.
hoe krijg zou ik dit werkend kunnen krijgen ?
als ik alle 3 de tabellen heb geselecteerd/ingevuld zou die eigenlijk naar het ID nummer moeten kijken en dan daarbij een artikelen lijst moeten toveren
Dit is wat ik heb:
<?
// Database connection
$db_database = '******';
$db_host = 'localhost';
$db_user = '******';
$db_pass = '******';
mysql_connect($db_host,$db_user,$db_pass) or die("Could not connect to MySQL (Main connection)");
mysql_select_db($db_database) or die("Could not connect to database (Main connection)");
// Start of triple_linked_selects function
function triple_linked_selects(
$table, // Table to create linked selects from
$table_column_01, // Root category
$table_column_02, // Subcategory of the root category
$table_column_03, // Available items in subcategory of the root category
$group_02_default_option_text, // Default option text for the group 2 select
$group_03_default_option_text) // Default option text for the group 3 select
{
// Define globals
global $javascript;
global $group_01_options;
// Define variables
$javascript = null; // Holds all the generated javascript
$group_01_options = null; // Holds all the select options for group 1
// Static Javascript
$javascript .=<<<content
/* Linked Dropdown Selects Script Start */
function DefaultGroup2()
{
var x = document.getElementById("Group2");
x.length = 0;
VarGroup2 = document.getElementById("Group2");
VarGroup2.options[VarGroup2.options.length] = new Option("$group_02_default_option_text","");
document.getElementById("Group2").disabled = true;
}
function DefaultGroup3()
{
var x = document.getElementById("Group3");
x.length = 0;
VarGroup3 = document.getElementById("Group3");
VarGroup3.options[VarGroup3.options.length] = new Option("$group_03_default_option_text","");
document.getElementById("Group3").disabled = true;
}
function ClearGroup3()
{
var x = document.getElementById("Group3");
x.length = 0;
document.getElementById("Group3").disabled = false;
}
function CheckGroup1Select()
{
// If no Group1 is selected clear the Group2 and Group3 selects and set them to their default values
if(document.getElementById("Group1").value == "")
{
// Clear the Group2 select and set to default value
DefaultGroup2();
// Clear the Group3 select and set to default value
DefaultGroup3();
}
content;
// Groups 1 & 2 Javascript
$group_01_query = "SELECT ".$table_column_01." FROM ".$table." GROUP BY ".$table_column_01;
$group_01_result = mysql_query($group_01_query) or die(mysql_error());
while($group_01 = mysql_fetch_array($group_01_result))
{
$group_01_options .= '<option value="'.$group_01[$table_column_01].'">'.$group_01[$table_column_01].'</option>'."\r\n";
$javascript .=<<<content
else if(document.getElementById("Group1").value == "$group_01[$table_column_01]")
{
// Clear the Group2 select and set to default value
DefaultGroup2();
// Set dynamic options for Group2 select
VarGroup2 = document.getElementById("Group2");
content;
$group_02_query = "SELECT ".$table_column_02." FROM ".$table." WHERE ".$table_column_01." = '".$group_01[$table_column_01]."' GROUP BY ".$table_column_02;
$group_02_result = mysql_query($group_02_query) or die(mysql_error());
while($group_02 = mysql_fetch_array($group_02_result))
{
$javascript .=' VarGroup2.options[VarGroup2.options.length] = new Option("'.$group_02[$table_column_02].'","'.$group_02[$table_column_02].'");'."\r\n";
}
$javascript .=<<<content
document.getElementById("Group2").disabled = false;
// Clear the Group3 select and set to default value
DefaultGroup3();
}
content;
}
$javascript .=' }'."\r\n";
// Group 3 Javascript
$javascript .=<<<content
function CheckGroup2Select()
{
content;
$group_01_query = "SELECT ".$table_column_01." FROM ".$table." GROUP BY ".$table_column_01;
$group_01_result = mysql_query($group_01_query) or die(mysql_error());
while($group_01 = mysql_fetch_array($group_01_result))
{
$javascript .=<<<content
if((document.getElementById("Group1").value == "$group_01[$table_column_01]") && (!document.getElementById("Group2").value))
{
// Clear the Group3 select and set to default value
DefaultGroup3();
}
content;
$group_02_query = "SELECT ".$table_column_02." FROM ".$table." WHERE ".$table_column_01." = '".$group_01[$table_column_01]."' GROUP BY ".$table_column_01.",".$table_column_02;
$group_02_result = mysql_query($group_02_query) or die(mysql_error());
while($group_02 = mysql_fetch_array($group_02_result))
{
$javascript .=<<<content
else if((document.getElementById("Group1").value == "$group_01[$table_column_01]") && (document.getElementById("Group2").value == "$group_02[$table_column_02]"))
{
ClearGroup3();
VarGroup3 = document.getElementById("Group3");
content;
$group_03_query = "SELECT * FROM ".$table." WHERE ".$table_column_02." = '".$group_02[$table_column_02]."' AND ".$table_column_01." = '".$group_01[$table_column_01]."' GROUP BY ".$table_column_03;
$group_03_result = mysql_query($group_03_query) or die(mysql_error());
while($group_03 = mysql_fetch_array($group_03_result))
{
$javascript .=' VarGroup3.options[VarGroup3.options.length] = new Option("'.$group_03[$table_column_03].'","'.$group_03[$table_column_03].'");'."\r\n";
}
$javascript .=' }'."\r\n";
}
}
$javascript .=<<<content
}
window.onload = CheckGroup1Select;
/* Linked Dropdown Selects Script End */
content;
} // End of triple_linked_selects function
?>
<?
// Call the triple_linked_selects function
triple_linked_selects('Motobase','merk','type','bouwjaar','Select...','-------------');
?>
<html>
<head>
<title>Triple Linked Selects</title>
<script type="text/javascript" language="JavaScript">
<? echo $javascript; ?>
</script>
</head>
<body>
<form action="">
Kies merk:
<br>
<select id="Group1" name="Group1" onchange="CheckGroup1Select(this);">
<option value="">Select...</option>
<? echo $group_01_options; ?>
</select>
<br>
Kies type:
<br>
<select id="Group2" name="Group2" onchange="CheckGroup2Select(this);"></select>
<br>
Kies bouwjaar:
<br>
<select id="Group3" name="Group3"></select>
</form>
</body>
</html>
Database van merken types en bouwjaar:
-- Tabel structuur voor tabel `Motobase`
--
CREATE TABLE IF NOT EXISTS `Motobase` (
`id` int(8) NOT NULL auto_increment,
`merk` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`bouwjaar` int(8) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- Gegevens worden uitgevoerd voor tabel `Motobase`
--
INSERT INTO `Motobase` (`id`, `merk`, `type`, `bouwjaar`) VALUES (1, 'Aprilia', 'RS125', 1992),
(2, 'Aprilia', 'RS125', 1994),
(3, 'Aprilia', 'Tuono', 1996),
(4, 'Aprilia', 'Tuono', 1998),
(5, 'Susuki', 'SV650', 2000),
(6, 'Susuki', 'Sv650', 2001),
(7, 'Yamaha', 'YZF R6', 2008),
(8, 'Yamaha', 'YZF R1', 2008);
Database artikelen:
--
-- Tabel structuur voor tabel `artikelen`
--
CREATE TABLE `artikelen` (
`id` int(8) NOT NULL auto_increment,
`naam` varchar(255) NOT NULL,
`artikelnummer` int(8) NOT NULL,
`prijs` int(8) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Gegevens worden uitgevoerd voor tabel `artikelen`
--
INSERT INTO `artikelen` (`id`, `naam`, `artikelnummer`, `prijs`)
VALUES (1, 'Accu YB16', 89, 59);
nu hoort het ''id'' van de database van merken types en bouwjaar bij het ''id'' van de database met artikelen (in dit geval ID 2 bij ID 1)
dus bij Aprilia RS125 met bouwjaar 1994 hoort een Accu YB16 met artikelnummer 89 en een prijs van 59 euro.
MAAR er zijn ook andere typen motoren die de zelfde accu gebruiken
wat is de makkelijkste manier om zoiets voor elkaar te krijgen of is het het makkelijker om hem te koppelen aan een link die verwijst naar een categorie in een webshop met al de juiste artikelen