Christopher Arthur: Per Dropdown Textfelder aktualisieren

Hallo,

ich bin mir zwar nicht ganz sicher aber ich denke PHP ist nicht die Lösung meines Problems, aber das Problem in einem PHP Skript entstanden ist denke ich es passt ganz gut in diese Kategorie.

Ich habe eine Seite in der ein Dropdown Feld und 3 Textfelder sind die über eine DB gefüttert werden.

Nun hätte ich aber gerne, dass sich die betreffenden Textfelder ändern wenn innerhalb des Dropdown Feldes ein anderer Eintrag ausgesucht wird.

Ist dies mit PHP möglich oder ist das eher Java ?? Wenn Java braucht ich da grad mal ein wenig mehr Hilfe.

MFG
Christopher

  1. Hello,

    Ist dies mit PHP möglich oder ist das eher Java ?? Wenn Java braucht ich da grad mal ein wenig mehr Hilfe.

    die Antwort dürfte sowohl als auch (mit Einschränkungen) lauten.

    1. PHP:
      Eine Lösung mittels PHP bringt, technisch bedingt, einen Roundtrip über den Server mit sich. D.h. man würde bei der Auswahl eines Eintrags aus der Dropdown-Liste das Formular abschicken, auf dem Server den Wert auslesen, das Textfeld in der Ergebnisseite anlegen und dort den Wert eintragen. Der Benutzer erhält eine völlig neu geladene Seite, wo der Wert drin steht. Warum bringt diese Lösung nichts? Entweder muss der Benutzer auf einen "Aktualisieren"-Submit-Button klicken damit das Formular abgeschickt und die Dropdown ausgewertet werden kann, oder du brauchst JavaScript um auf die Auswahländerung zu reagieren - nun ja, und wenn du eh schon bei JavaScript bist, warum dann den Server bemühen.

    2. Java:
      Java ist nicht JavaScript, beide teilen sich hauptsächlich den Namen.

    2neu) JavaScript:
    Du benötigst grob gesagt:
    onchange für die Select-Felder um auf eine geänderte Auswahl zu reagieren.
    _Beispielsweise_ document.getElementById um gezielt auf ein Textfeld zuzugreifen
    Die .value-Eigenschaft des Textfeldes um den Inhalt zu verändern.

    Ganz generell aber die Frage: Woher soll denn der/die geänderten Werte kommen? Das würde einen weiteren Ausschlag geben, ob nicht doch vielleicht der Server beteiligt werden muss.

    MfG
    Rouven

    --
    -------------------
    Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
    1. _Beispielsweise_ document.getElementById um gezielt auf ein Textfeld zuzugreifen
      Die .value-Eigenschaft des Textfeldes um den Inhalt zu verändern.

      Hier brächte ich am Ende mal ein Beispiel wie das gehen könnte. Funktionierender Code den ich dann weiter anpasse. Da ich zu wenig Ahnung von Java Skript habe.

      Ganz generell aber die Frage: Woher soll denn der/die geänderten Werte kommen? Das würde einen weiteren Ausschlag geben, ob nicht doch vielleicht der Server beteiligt werden muss.

      Der Grundgedanke ist folgendes via PHP soll in einem DropdownFeld der Inhalt einer Tabelle aus SQL eingetragen werden. Wenn ich nun in diesem Dropdownfeld etwas auswähle sollen die weiteren Daten die in der sql Tabelle stehen in einzelne Textfelder kommen.

      1. Hello,

        Der Grundgedanke ist folgendes via PHP soll in einem DropdownFeld der Inhalt einer Tabelle aus SQL eingetragen werden. Wenn ich nun in diesem Dropdownfeld etwas auswähle sollen die weiteren Daten die in der sql Tabelle stehen in einzelne Textfelder kommen.

        ahhhhhso, und da ist der Hund zumindest mal mit zwei Beinen im Grab. Du musst dich gewissermaßen entscheiden, ob du _alle_ Daten beim einmaligen Laden der Seite an den Nutzer schickst, oder nur die, die gerade angezeigt werden. Im ersten Fall kannst du rein mit JavaScript aus dem vollen Schöpfen und die Werte nachtragen. Im zweiten Fall hast du natürlich weitaus weniger sinnlose Daten durch die Welt geschickt, musst aber das aktuell benötigte vom Server holen. Ich würde mit dem jetzigen Wissen doch für eine Lösung plädieren, die den Server mit einbezieht. Eine Sache, die sich allerdings anbietet ist die Nutzung von AJAX, womit es möglich wird Daten vom Server nachzuladen ohne dass der Nutzer das Formular verlässt und seine Eingaben verliert. Allerdings könnte dies aufwändig werden, falls du überhaupt keine Ahnung von JavaScript hast.
        Möchtest du dich erstmal auf die einfache Variante beschränken, dann füge deinem Select folgenden Code hinzu:
        onchange="this.form.submit();"

        Im Ergebnis wird nun bei Änderung der Auswahl dein Formular abgeschickt. Dein PHP-Skript (beherrst du eigentlich PHP?) kann nun die aktuelle Auswahl der Dropdown auslesen und entsprechend die Textfelder vorbereiten.

        MfG
        Rouven

        --
        -------------------
        Inter Arma Enim Silent Leges  --  Cicero
        1. Im Ergebnis wird nun bei Änderung der Auswahl dein Formular abgeschickt. Dein PHP-Skript (beherrst du eigentlich PHP?) kann nun die aktuelle Auswahl der Dropdown auslesen und entsprechend die Textfelder vorbereiten.

          Ich denke dies wird erstmal die Übergangslösung !!
          ich habe in diesem Semester PHP, Java, SQL usw. übergebraten bekommen. In PHP und MYSQL kam ich schnell rein aber JAVA bzw. Java Skript raff ich irgendwie net.

          Die Geschichte mit AJAX klingt auch sehr interessant. Wäre ganz nett wenn du mal ein paar Stichwörter für mich hast, die mich speziell auf mein Problem in Sachen AJAX einschießen.

          Besten dank für die Antwort erstmal. Versuch mich da morgen mal dran,...

          1. Hello,

            Die Geschichte mit AJAX klingt auch sehr interessant. Wäre ganz nett wenn du mal ein paar Stichwörter für mich hast, die mich speziell auf mein Problem in Sachen AJAX einschießen.

            Besondere Stichwörter gibts da keine. Du nimmst dir "einfach" das Request-Objekt und liest per JavaScript deine aktuelle Auswahl aus. Nun forderst du mit dem Request Objekt eine Antwort von einem Serverskript, z.B. PHP, an:
            http://www.example.com/get_details?aktuelleauswahl=abc

            Das PHP Skript greift die notwendigen Daten ab und schickt ein XML-Dokument zurück:
            <result>
              <wert1>A</wert1>
              <wert2>B</wert2>
            </result>

            Dein JavaScript fängt dieses XML-Ergebnis auf und arbeitet es mittels entsprechender DOM-Methoden in das Dokument ein.

            Ein Beispiel dafür gibts mittlerweile an vielen Stellen (da kann man sich die clientseitigen Schritte anschauen):
            Google Suggest
            Ich meine Wikipedia hat sowas auch, ich finds aber gerade nicht.

            MfG
            Rouven

            --
            -------------------
            Unser Problem ist, dass wir eine Demokratie entwickelt haben, was nicht immer der richtige Weg ist  --  Bernie Ecclestone zu den lästigen Diskussionen um Regeländerungen in der Formel 1