Hallo Community,
seit ein paar Stunden probiere ich mit einem Script herum und finde den Fehler bzw. die Lösung einfach nicht.
Ich habe eine Datenbank mit verschiedenen Artikeln, die haben verschiedene Größen und Farben.
Aufgebaut wie folgt:
Nun soll man in einem ersten <select> die Farbwerte auswählen können, worauf hin sich in Abhängigkeit der Farbe die vorhandenen Größen in einem zweiten <select> ausgegeben werden.
Habe schon ein Script gefunden, und versucht, dieses anzupassen, doch funktioniert es leider nicht, sprich, mein zweiter select wird nach einer bereits ersten Auswahl nicht richtig geladen "nachgeladen".
Wenn ich als erstes die grün-weiss-Variation wähle, erscheint der select mit der Größenauswahl richtig.
Entscheide ich mich dann aber um, und wähle Farbe grün-blau, erhalte ich keine Größen mehr zur Auswahl, nur noch mein erstes <option> mit Größe wählen </option>.
Das script wie folgt:
Die PHP-Funktion dazu wie folgt:
Wo ist denn hier der Haken?
Geht mit irgendwo die Info für die Artikelnummer verloren oder warum ergibt die DB-Abfrage hier keine Werte mehr?
Ich bin mal eher so ein richtiger AJAX-Nichtkönner, daher mein Posting in diesem Bereich. Vermute einen Nachladefehler mittels JS/AJAX, kann das sein?
Vielen Danke schon mal und sonnige Grüße,
susi1600
seit ein paar Stunden probiere ich mit einem Script herum und finde den Fehler bzw. die Lösung einfach nicht.
Ich habe eine Datenbank mit verschiedenen Artikeln, die haben verschiedene Größen und Farben.
Aufgebaut wie folgt:
HTML-Code:
id | artikelnummer | farbkombination | groesse 1 | DA-1000-PA | grün-weiß | 34/36 2 | DA-1000-PA | grün-blau | 40/42
Habe schon ein Script gefunden, und versucht, dieses anzupassen, doch funktioniert es leider nicht, sprich, mein zweiter select wird nach einer bereits ersten Auswahl nicht richtig geladen "nachgeladen".
Wenn ich als erstes die grün-weiss-Variation wähle, erscheint der select mit der Größenauswahl richtig.
Entscheide ich mich dann aber um, und wähle Farbe grün-blau, erhalte ich keine Größen mehr zur Auswahl, nur noch mein erstes <option> mit Größe wählen </option>.
Das script wie folgt:
HTML-Code:
<head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#wait_1').hide(); $('#farbe').change(function(){ $('#wait_1').show(); $('#result_1').hide(); $.get("inc/functions.php", { func: "farbe", drop_var: $('#farbe').val(), artikelnummer: $('#artikelnummer').val() }, function(response){ $('#result_1').fadeOut(); setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400); } ); return false; }); }); function finishAjax(id, response) { $('#wait_1').hide(); $('#'+id).html(unescape(response)); $('#'+id).fadeIn(); } </script> </head> <body> <form action="" method="post"> <select name="farbe" id="farbe"> <option value="" selected="selected" disabled="disabled">Farbe wählen</option> <?php getSelectFarbe($artikelnummer); ?> </select> <input type="hidden" id="artikelnummer" name="artikelnummer" value="<?php echo $artikelnummer; ?>" /> <span id="wait_1" style="display: none;"> <img alt="Please Wait" src="ajax-loader.gif"/> </span> <span id="result_1" style="display: none;"></span> </form> </body>
PHP-Code:
<?php
function getSelectFarbe($artikelnummer) {
$result = mysql_query("SELECT
DISTINCT farbkombination
FROM groessen_und_farben
WHERE artikelnummer='$artikelnummer'")
or die(mysql_error());
while($farbe = mysql_fetch_array( $result )) {
echo '<option value="'.$farbe['farbkombination'].'">'.$farbe['farbkombination'].'</option>';
}
}
if($_GET['func'] == "farbe" && isset($_GET['func'])) {
farbe($_GET['drop_var'],$_GET['artikelnummer']);
}
function farbe($drop_var,$artikelnummer) {
$result = mysql_query("SELECT *
FROM groessen_und_farben
WHERE farbkombination='$drop_var'
AND artikelnummer='$artikelnummer'")
or die(mysql_error());
echo '<select name="groesse" id="groesse">
<option value="" disabled="disabled" selected="selected">Größe wählen</option>';
while($groessen = mysql_fetch_array( $result )) {
echo '<option value="'.$groessen['groesse'].'">'.$groessen['groesse'].'</option>';
}
echo '</select> ';
echo '<input type="submit" name="submit" value="Submit" />';
}
?>
Geht mit irgendwo die Info für die Artikelnummer verloren oder warum ergibt die DB-Abfrage hier keine Werte mehr?
Ich bin mal eher so ein richtiger AJAX-Nichtkönner, daher mein Posting in diesem Bereich. Vermute einen Nachladefehler mittels JS/AJAX, kann das sein?
Vielen Danke schon mal und sonnige Grüße,
susi1600
Kommentar