[AJAX] Select-Boxen abhängig von einander

  • Ersteller Ersteller Mr. Snoot
  • Erstellt am Erstellt am
M

Mr. Snoot

Gast
Hü,

ich habe hier zwei Select-Boxen, die sich gegenseitig beeinflussen sollen.

Wähle ich in der oberen Box eine bestimmte Kapazität sollen in der anderen Box nur Hersteller angezeigt werden, wo es diese Kapazität auch gibt. Und andersrum sollen bei der Wahl eines Herstellers nur die Kapazitäten angezeigt werden, die es eben zu diesem Hersteller gibt.

Das klappt soweit auch, allerdings gibts ein Problem.

Wähle ich bspw. 4 GB werden nur die "4 GB-Hersteller" angezeigt. Wähle ich nun aber aus den angezeigten "4 GB-Hersteller" einen aus, springt die Kapazitäts-Box wieder zurück, da bei der Wahl des Herstellers ja wiederum alle "seine" Kapazitäten geladen werden. In dem Fall sollte die Box aber so bleiben, wie sie ist - sonst kann man ja nie gleichzeitig einen Hersteller mit einer bestimmten Kapazität wählen.

Am besten die Seite anschauen, dann sollte das Problem klar werden.


Hat jemand eine Idee, was man da tun könnte? Mir verknoten sich gerade mal wieder die Gehirnwindungen :D

Das Script zum Nachladen der Listen sieht so aus:
PHP:
<script type="text/javascript">
  $(document).ready(function()
  {
    $("#sel_kap").change(function()
    {
      var id_hauptkategorie=$(this).children('option:selected').val();
      $("#sel_herst").load("sel_herst.php",{value: id_hauptkategorie});
    });
  });
</script>

<script type="text/javascript">
  $(document).ready(function()
  {
    $("#sel_herst").change(function()
    {
      var id_hauptkategorie=$(this).children('option:selected').val();
      $("#sel_kap").load("sel_kap.php",{value: id_hauptkategorie});
    });
  });
</script>
sel_kap.php und sel_herst.php sind stinknormale DB-Abfragen, die halt die Listen befüllen.
 
merk dir doch vor dem query jeweils, was die andere box gelistet hat. speicher diese, mach den query, vergleich die ergebnisliste und setz den wert wieder zurück falls vorhanden.
 
AW: Re: [AJAX] Select-Boxen abhängig von einander

Also irgendwie so!?
Code:
<script type="text/javascript">
  $(document).ready(function()
  {
    $("#sel_herst").change(function()
    {
      [COLOR="red"]var id_kap=$("#sel_kap").children('option:selected').val();[/COLOR]
      var id_hauptkategorie=$(this).children('option:selected').val();
      $("#sel_kap").load("sel_kap.php",{value: id_hauptkategorie});

[COLOR="Red"]      if(id_kap != 'Alle')
      {
        $("#sel_kap").value = id_kap;
      }[/COLOR]

    });
  });
</script>
Aber das haut alles nicht hin; mit dem AJAX-Zeug kenn ich mich auch nicht wirklich aus :(
 
rein theoretisch ja, denn dann bleibt der hersteller oder die kapazität ja unverändert (zumindest beim user). ich sehe hierbei nur das problem der endlosschleife, dass wenn combobox a combobox b verändert und sich daraus wiederum combobox a verändert, welche wiederum b verändert und diese a, ..... macht er denn gar nix bei dieser änderung? zeigt die fehlerkonsole was am js code an?
 
AW: Re: [AJAX] Select-Boxen abhängig von einander

Das Script arbeitet genau so wie davor; keinerlei Fehler oder sonst was.

Das mit der Endlosschleife hab ich mir auch schon gedacht.

Evtl. mach ich es einfach so, dass von Beginn an nur die Kapazitätsbox die Herstellerbox beeinflusst und diese nicht wieder die Kapazität. Auch wenns schön wäre.
 
Zuletzt bearbeitet:
Kann man bei Javascript feststellen, woher die Änderung kam? Also in Delphi wäre ich es vlt. so angegangen, dass ich prüfe ob die Änderung der Select-Box-Auswahl durch den Computer oder durch den User erfolgte, und je nach dem wird dann die jeweils andere Box geändert oder nicht.
 
Zurück
Oben