Ik heb op internet een voorbeeld gevonden van een chained select.
Deze werkt bijna zoals ik het zou willen hebben.
Ik heb 3 velden in mijn database (categorie, keuze2, prijsklasse).
Stel ik heb de volgende gegevens in mijn database staan (id even daarbuiten gelaten)
Categorie keuze2 prijsklasse
keuken klassiek 5000
keuken klassiek 15000
sanitair modern 1000
sanitair klassiek 1000
Nu kies ik in de chained select voor keuken, klassiek en krijg ik vervolgens in de laatste pull-down de prijsklasse terug.
Helaas geeft deze ook 1000 weer, omdat ik in de 2e pull-down box gekozen heb voor klassiek.
Eigenlijk wil ik dus dat er wordt gekeken naar de combinatie categorie + keuze2 en dat dan de prijsklasse getoond wordt.
Ik wil dus in de laatste pull-down de volgende waardes zien: 5000 en 15000
Wat moet ik aanpassen aan onderstaande code zodat dit gaat werken ?
Oh ja, de code zal vast beter kunnen, maar dit was het beste wat ik kon vinden op internet wat een beetje werkte.
<?php
//**************************************
// Page load dropdown results //
//**************************************
function getCategorie()
{
$result = mysql_query("SELECT DISTINCT categorie FROM showroom")
or die(mysql_error());
while($tier = mysql_fetch_array( $result ))
{
echo '<option value="'.$tier['categorie'].'">'.$tier['categorie'].'</option>';
}
}
//**************************************
// First selection results //
//**************************************
if (isset($_GET['func'])&& $_GET['func'] == "drop_1" ) {
drop_1($_GET['drop_var']);
$_SESSION['drop_1'] = $_GET['drop_var'];
}
//if($_GET['func'] == "drop_1" && isset($_GET['func'])) {
// drop_1($_GET['drop_var']);
//}
function drop_1($drop_var)
{
include_once('db.php');
$result = mysql_query("SELECT DISTINCT keuze2 FROM showroom WHERE categorie='$drop_var'")
or die(mysql_error());
echo '<select name="drop_2" id="drop_2">
<option value=" " disabled="disabled" selected="selected">Kies uw type</option>';
while($drop_2 = mysql_fetch_array( $result ))
{
echo '<option value="'.$drop_2['keuze2'].'">'.$drop_2['keuze2'].'</option>';
}
echo '</select>';
echo "<script type=\"text/javascript\">
$('#wait_2').hide();
$('#drop_2').change(function(){
$('#wait_2').show();
$('#result_2').hide();
$.get(\"func.php\", {
func: \"drop_2\",
drop_var: $('#drop_2').val()
}, function(response){
$('#result_2').fadeOut();
setTimeout(\"finishAjax_prijsklasse('result_2', '\"+escape(response)+\"')\", 400);
});
return false;
});
</script>";
}
//**************************************
// Second selection results //
//**************************************
if (isset($_GET['func'])&& $_GET['func'] == "drop_2" ) {
drop_2($_GET['drop_var']);
$_SESSION['drop_2'] = $_GET['drop_var'];
}
//if($_GET['func'] == "drop_2" && isset($_GET['func'])) {
// drop_2($_GET['drop_var']);
//}
function drop_2($drop_var)
{
include_once('db.php');
$result = mysql_query("SELECT DISTINCT prijsklasse FROM showroom WHERE keuze2='$drop_var' ORDER BY prijsklasse ASC")
or die(mysql_error());
echo '<select name="drop_3" id="drop_3">
<option value=" " disabled="disabled" selected="selected">Kies uw prijsklasse</option>';
while($drop_3 = mysql_fetch_array( $result ))
{
echo '<option value="'.$drop_3['prijsklasse'].'">'.$drop_3['prijsklasse'].'</option>';
}
echo '</select> ';
echo '<input type="submit" name="submit" value="Submit" />';
}
?>
Volgens mij moet ik iets doen met de sessie, maar ik kom er niet uit.
Als ik het volgende gebruik, dan werkt het nog niet en krijg ik een fout over undefiend session.
<?php $result = mysql_query("SELECT DISTINCT prijsklasse FROM showroom WHERE keuze2='$drop_var' AND categorie='". $_SESSION['drop_1']."' ORDER BY prijsklasse ASC")
?>
Wie kan me helpen ?
1.056 views