Ankündigung

Einklappen
Keine Ankündigung bisher.

Selectbox mit Standardwerten und Werten aus einer DB

Einklappen

Neue Werbung 2019

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

  • Selectbox mit Standardwerten und Werten aus einer DB

    Servus miteinander,
    ich habe ein Feld: Anrede in meiner DB. Nun möchte ich eine Selectbox realisieren, in der nicht nur die Anrede des ausgewählten Kunden, bspw. Frau, sondern auch andere Einträge wie: Herrn und Frau, Firma... als Auswahlmöglichkeit für evtl. Änderungen an Datesätzen angezeigt werden können. Bisher habe ich es geschafft, dass Frau, Herr... doppelt angezeigt werden. 1* zugeordnet zum Datensatz und 1* als "Standardwert" aus der Selectbox.

  • #2
    Und deine Frage lautet wie?

    Kommentar


    • #3
      Hm...
      Ich möchte: Frau, Herr... als Values drin haben. Wenn ich über die Kundensuche eine Person auswähle steht die bei dem Kunden abgelegte Ansprache drin, bspw. Frau. Nun wenn ich Frau auch als Value in der Selectbox habe, wird diese doppelt angezeigt.

      Kommentar


      • #4
        Ein Codebeispiel was du bereits hast wäre ganz schnieke für uns.
        Ganz Prinzipiell würde ich ein array nutzen was alle werte enthält die in der Select Box vorkommen sollen, das durchläufst du einfach und wenn du an dem Punkt angekommen bist wo die Array Value mit dem aus der Datenbank übereinstimmt machst du ein "selected" rein.

        PHP-Code:
        $anreden = array(
        'Frau',
        'Herr',
        'Firma'
        );

        foreach (
        $anreden AS $andrede) {
        //option ausgeben

        if ($andrede == $kunde['anrede']{
        //selected


        so mal ganz schematisch

        Kommentar


        • #5
          roest
          Dein Tipp war super, danke.
          Ich habe es jetzt so gelöst:

          a.) Zunächst lege ich meine Selectbox fest
          HTML-Code:
          <select id="AnredeListe" disabled="" ></select>
          b.) Danach lege ich die möglichen Values fest
          Code:
          var $anreden = ["Kundenanrede...", "Frau", "Herr", "Firma"];
          var sel = document.getElementById('AnredeListe');
          for(var i = 0; i < $anreden.length; i++) {
              var opt = document.createElement('option');
              opt.innerHTML = $anreden[i];
              opt.value = $anreden[i];
              sel.appendChild(opt);
          c.) Letztendlich ermittle und übergebe ich die dem Kunden zugeordnete Anrede an die Selectbox.
          Was mich aber überrascht hat, ich muss hier keine Schleife zum Abgleich einbauen. Er zeigt die Anrede an, und zwar ohne Duplikate.
          Code:
          var $anrede =
                    antwort.getElementsByTagName("titel")[0].
                    firstChild.nodeValue
          document.getElementById("AnredeListe").value=$anrede;

          Kommentar


          • #6
            Warum denn per JavaScript?

            Kommentar


            • #7
              Zitat von VPh Beitrag anzeigen
              Warum denn per JavaScript?
              Berechtigte Frage. Ich bin mir aber ziemlich sicher, dass man das sogar noch umständlicher hinbekommt.

              Kommentar


              • #8
                Irgendwie habe ich den Eindruck, dass Ihr durch Eure Arroganz einen ganz schönen Höhenflug erlebt. Einerseits wird erwartet, dass man den eigenen Code vorzeigt, damit man nicht zum Trittbrettfahrer abgestempelt wird. Und dann muss man sich so blöde Sprüche anhören. Anscheinend habt Ihr das Hirn löffelweise gefressen und den anderen hat man ins Hirn gesch...
                Wenn es einfacher geht, dann zeigt es einfach. Dumme Sprüche reissen kann jeder.
                Na ja, aber wegen ein paar solchen nicht gesellschaftsfähigen Gestalten werde ich nicht das gesamte Forum, bzw. nicht alle Mitglieder zu Dep... abstempeln. Sorry, damit ist eigentlich nur der uhu, nein, der uha gemeint. Aber jetzt weiss ich wie man auf 832 Beiträge kommt...

                Kommentar


                • hausl
                  hausl kommentierte
                  Kommentar bearbeiten
                  Die Kraftausdrücke ersparst du dir bitte künftig.

              • #9
                Hätte ja sein können, dass die Entscheidung einen Grund hat.

                Das Vorgehen hat roest ja schon gezeigt.
                Du iterierst über das Array in dem die Anreden stehen.
                Innerhalb dieser Schleife prüfst du dann, ob der Wert aus der Datenbank mit dem aktuellen Wert im Array übereinstimmt. Falls ja setzt du dann das Attribut selected im <option>-Tag.
                PHP-Code:
                foreach ($anreden as $anrede){
                    echo 
                '<option ' . ($anrede === $dbDing) ? selected '' '>' $anrede '</option>;

                Beispiel inkl. Fehler, weil meine Tasta nicht ganz heile ist...

                Na ja, aber wegen ein paar solchen nicht gesellschaftsfähigen Gestalten
                Ich glaube du hast eine falsche Vorstellung von Programmierern.

                Kommentar


                • #10
                  Ich komme aus der Access-Welt. Alles was ich bisher in PHP und javascript erlernt habe, habe ich durch Nachfragen und Nachlesen erreicht. In meiner Ausbildung zum Informatikkaufmann habe ich nur Access und VB gelernt.
                  Deshalb habe ich mich hier in diesem Forum angemeldet um Ratschläge von erfahreren Programmierern zu bekommen. Ich erwarte keinen fertigen Code, sondern einfach kurze und aussagekräftige Tipps. Aber wenn es hier so gehandhabt wird, na gut.
                  Wobei, mit vielen, wie auch mit Dir, kann man vernünftig diskutieren. Danke für die ausführlichere Erklärung. Ich versuche es so umzusetzen und hoffe, dass die nächsten Anfragen auch so ernst genommen werden.

                  Kommentar


                  • #11
                    Such auch mal hier Im Forum ein wenig, das Thema selectbox gab es schon oft, wie z.B. Inhalt des Select Auswahlmenüs auf Formularfelder verteilen.

                    Kommentar


                    • #12
                      @jspit
                      Super, vielen Dank.
                      Rom wurde auch nicht nur an einem Tag erbaut

                      Kommentar


                      • #13
                        Schau mal hier, aus der "hauseigenen" Wissenssammlung: http://php-de.github.io/jumpto/auswa...misch-erzeugen

                        Kommentar

                        Lädt...
                        X