Dropdown automatisch füllen mit js/php

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dropdown automatisch füllen mit js/php

    Hallo zusammen,

    folgende Anforderungen soll mein Script erfüllen:

    wenn in einem Dropdown eine Option angeklickt wurde, soll anhand dieser Auswahl eine Datenbankabfrage erfolgen, deren Ergebnis die Optionen das nächsten Dropdown bilden. Das Ganze soll sich dann nochmal wiederholen, so dass ich mit drei Dropdowns alle nötigen Auswahlen getroffen habe. Im Anschluss daran wird das alles per POST in die Datenbank geschrieben werden.

    Das Schreiben des gesamten Forms, es befinden sich noch ein paar weitere input-Felder auf der Seite, funktioniert.

    Bisher ist es so, dass nach dem ersten Dropdown (1. Auswahl) ein Fenster aufpopt und man die 2. Auswahl trifft. Danach wird das Fenster geschlossen und ein neues geöffnet, in dem man dann die 3. und letzte Auswahl trifft. Danach wird alles an das aufrufende Fenster zurückgegeben und an den entsprechenden Stellen in input-Felder geschrieben, die dann später vom POST erfasst werden. Problem dabei ist, das die komplette Seite neu geladen wird, und somit vorher eingegebene Werte wieder neu eingegeben werden müssen.

    Mit der angestrebten Version wird das Auswählen einfacher und ausserdem soll dann auch nicht mehr die komplette Seite neu geladen werden, sondern nur die Dropdowns, so das die anderen Werte erhalten bleiben.

    Nun zu dem Problem. Ich denke, das geht nur mit Ajax. Nur habe ich davon nicht wirklich die Ahnung. Es schwirrt viel im www rum, aber nirgends was wo man erfährt wie das abläuft und wie man das programmtechnisch umsetzt. Würdet ihr mir bitte bei der Umsetzung bisschen unter die Arme greifen ?!?!

    Erstes konkretes Probelm dazu ist, das ich zwar ne Funktion habe die auch meine Erstgewählte Option erkennt, aber wie kriege ich die dann an PHP um die Abfrage zu machen und des Ergebnis dessen wieder zurück in das neue Dropdown?

    Hier der Aufruf und die Funktion(mit dem Versuche eines requests):
    Code:
    <td><select name="glashersteller_re" onchange="FensterOeffnenAutomatischRe(this.value)">
    
    
    function FensterOeffnenAutomatischRe (Wert)
    {
    var glashersteller_re = Wert;
    var http_request = false;
    
        function macheRequest(glashersteller_re) {
    
            http_request = false;
    
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                    // zu dieser Zeile siehe weiter unten
                }
            } else if (window.ActiveXObject) { // IE
                try {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            }
    
            if (!http_request) {
                alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
                return false;
            }
            http_request.onreadystatechange = alertInhalt;
            http_request.open('GET', url, true);
            http_request.send(null);
    
        }
    
        function alertInhalt() {
    
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
                    alert(http_request.responseText);
                } else {
                    alert('Bei dem Request ist ein Problem aufgetreten.');
                }
            }
    
        }
    }


    Danke und Gruß


    Michael
    Gruß

    Michael

  • #2
    Warum das Rad neu erfinden?!

    http://remysharp.com/2007/09/18/auto...-select-boxes/

    Kommentar


    • #3
      Warum das Rad neu erfinden, wenn es doch so tolle Javascript Frameworks mit AJAX Support gibt

      Siehe hier:

      http://mootools.net/docs/Request/Request
      oder hier:
      http://docs.jquery.com/Ajax

      Kommentar


      • #4
        frameworks sind was für feiglinge und leute, die keine ahnung von javascript haben .

        @ts
        schau dir mal das tutorial an, da wird das alles genau erklärt.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          frameworks sind was für feiglinge und leute, die keine ahnung von javascript haben
          Oh man, so langsam wird es hier echt bißchen unterirdisch.

          Kommentar


          • #6
            Also eigentlich genau das richtige für mich

            Spaß beiseite, ich guckmir das alles mal an, wobei mir die Variante von Peter am besten gefällt, das weiss man wenigestens was man gemacht hat. Wobei die aber auch am aufwendigsten ist.

            Ich melde mich dann bei weiteren Problemen wieder.


            Gruß

            Michael
            Gruß

            Michael

            Kommentar


            • #7
              Re: Dropdown automatisch füllen mit js/php

              Original geschrieben von fritzje610
              Nun zu dem Problem. Ich denke, das geht nur mit Ajax.
              Geht auch ohne AJAX, nur mit Javascript.
              Dabei musst Du dann allerdings erstmalig alle Werte abfragen und in JavaScript (Arraystruktur) vorhalten und beim Ändern einer Dropdownliste, die anderen beiden entsprechend aktualisieren.

              Ich denke, das ist bei "kleineren" Wertemengen durchaus eine Alternative.

              Kommentar


              • #8
                Re: Re: Dropdown automatisch füllen mit js/php

                Original geschrieben von phpguru42
                Geht auch ohne AJAX, nur mit Javascript.
                Dabei musst Du dann allerdings erstmalig alle Werte abfragen und in JavaScript (Arraystruktur) vorhalten und beim Ändern einer Dropdownliste, die anderen beiden entsprechend aktualisieren.

                Ich denke, das ist bei "kleineren" Wertemengen durchaus eine Alternative.
                und was passiert, wenn mittendrin ein Wert in der DB geändert wird?

                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Re: Re: Re: Dropdown automatisch füllen mit js/php

                  Original geschrieben von Kropff
                  und was passiert, wenn mittendrin ein Wert in der DB geändert wird?
                  Interessanter Einwand. Optionslisten beinhalten meiner Meinung nach eher feste Werte, können sich aber durchaus ändern, wenn auch selten.

                  AJAX minimiert vielleicht diese Kollisionen, kann sie aber auch nicht verhindern. Angenommen, der Benutzer hat jetzt alle drei DropDowns selektiert und überlegt noch eine Weile, während sich die Datenbasis auf dem Server ändert und sendet erst dann das Formular.

                  In beiden Fällen musst Du also die Daten serverseitig nochmals überprüfen!

                  Kommentar

                  Lädt...
                  X