Hi Leute,
Hier ist ein Problem zumindest für mich, das aus JS und PHP besteht.
Ich bräuchte eure hilfe bei der realisierung 2er voneinander abhängigen select boxen, welche beide aus einer db ausgelesen werden.
Als beschreibung:
Ich habe das erste selectfeld wo Hersteller von Fahrzeugen Drinnen sind. DIes wird aus der db ausgelesen:
<select name="her" class="textfeld">
<?php
$sqlbefehl ="
Select
Hersteller
From
hersteller
";
$erg_cats = mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
while($cat = mysql_fetch_assoc($erg_cats)){
echo '<option value="'.$cat['Hersteller'].'">'.$cat['Hersteller'].'</option>';
}
?>
</select>
Alles anzeigen
Das Funktioniert auch.
Nun möchte ich, dass ich in einem 2ten Selectfeld alle Modelle Des ersten Selectfeldes aufgeführt werden.
ZB
selsect feld 1 = Audi A1 A3 A6 <--- soll dann natürlich im 2ten Selectfeld aufgeführt werden.
Beide werden aus der selben Tabelle ausgelesen, demnach muss ich das mit where ... steuern das erste wird mit Distinkt abgefragt um doppelte einträge zu vermeiden. Das stellt auch weniger das problem dar, als das JS script richtig einzubauen.
Evt kann euch das folgende script helfen was mir jmd gegeben hat, welches meiner Ansicht nach nicht umzubauen ist.
<script type="text/javascript">
var mygroup = new Array();
// reset
mygroup[0] = new Array();
mygroup[0][0] = new Option("Bitte wählen Sie zunächst eine Sprache.", 0);
// deutsch
mygroup[1] = new Array();
mygroup[1][0] = new Option("eins", 2);
mygroup[1][1] = new Option("zwei", 4);
mygroup[1][2] = new Option("drei", 8);
// englisch
mygroup[2] = new Array();
mygroup[2][0] = new Option("one", 1);
mygroup[2][1] = new Option("two", 3);
mygroup[2][2] = new Option("three", 9);
// spanisch kann ich nicht
// französisch (eigentlich auch nicht)
mygroup[40] = new Array();
mygroup[40][0] = new Option("un", 5);
mygroup[40][1] = new Option("deux", 50);
mygroup[40][2] = new Option("trois", 500);
// mygroup[ZB_PRIMARY_KEY_SELECT][FORTLAUFENDE_ZAHLEN_AB_0] = new Option(OPTION_TEXT, ZB_PRIMARY_KEY_SUBSELECT)
// alle <option>s des sub-<select> entfernen
function ResetSubSelect(form, subSelect)
{
var e = form.elements[subSelect];
for (var i = 0; i < e.options.length; ++i) {
e.options[i] = null;
}
}
// übergebenes Element (sub-<select>) deaktivieren
function DisableSubSelect(elem)
{
elem.disabled = 1;
}
// übergebenes Element (sub-<select>) aktivieren
function EnableSubSelect(elem)
{
elem.disabled = 0;
}
// tritt bei onchange in Kraft, bzw. bei der Initiierung
function ShowSubSelect(elem, subSelect)
{
// alle <option>s des sub-<select> entfernen (reset)
ResetSubSelect(elem.form, subSelect);
// welcher value wurde ausgewählt
var i = elem.options[elem.selectedIndex].value;
// sub-<select>
var s = elem.form.elements[subSelect];
// dem <sub>-select die <option>s aus mygroup zuordnen
for (var k = 0; k < mygroup[i].length; k++) {
s.options[k] = mygroup[i][k];
}
// war die ausgewählte value 0? dann sub-<select> deaktivieren
if (i == 0) {
DisableSubSelect(s);
} else {
EnableSubSelect(s);
}
}
function InitSubSelect()
{
// leeres sub-<select> mit mygroup[0] füllen
ShowSubSelect(document.forms['myform'].elements['myselect'], "mysubselect");
}
</script>
<form action="" method="get" name="myform">
<select name="myselect" onchange="ShowSubSelect(this,'mysubselect')">
<option value="0">Bitte wählen Sie eine Sprache.</option>
<option value="1">deutsch</option>
<option value="2">englisch</option>
<option disabled="disabled" value="3">spanisch</option>
<option value="40">französisch</option>
</select>
<select name="mysubselect" disabled="disabled">
</select>
<input type="submit" />
</form>
Alles anzeigen
Wie gesagt, ich komme da ohne Eure hilfe nicht weiter, da ich JS unerfahren bin und hoffe, das mir jemand von Euch dabei helfen kann/möchte.
Ganz liebe grüße Vincita