Ankündigung

Einklappen
Keine Ankündigung bisher.

Auswahl aus Options-Feld in eine neue Mysql-Query einbauen

Einklappen

Neue Werbung 2019

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

  • Auswahl aus Options-Feld in eine neue Mysql-Query einbauen

    Hallo zusammen,
    auf einer Webseite habe ich oben ein Optionsfeld, deren Inhalt über eine mysql-abfrage auf eine Tabelle gefüllt wird.

    Code:
    //Beginn des Dropdownmenüs
    
    $query1="select distinct sp from plz_sp";
    $ergebnis=mysqli_query($conn_id,$query1);
    echo "<select name='Unternehmer' size=1>";
    
    //hier kommen die Werte in die Option rein
    
    while ($res = mysqli_fetch_row($ergebnis))
            echo "<option>".$res[0]."</option>";
    echo "</select>";
    Die Verbindung zur DB wird hergestellt und ist sicher.
    Die Werte für 'sp' werden auch alle ordentlich in das Options-Feld geschrieben.

    Nun weiß ich nicht, wie man einen ausgewählten Wert aus dem Options-Feld so übernimmt, damit ich ihn weiter unten im Code in einer anderen mysql-Abfrage als where-Clausel verwenden kann.
    Vielleicht geht das auch nur mit zwei php-Scripts, die aus einer HTML-Seite aufgerufen werden.

    Ich hoffe, dass ich mich einigermaßen verständlich ausdrückte.

    Danke
    Thomas

  • #2
    Nach dem Absenden des Forms stehen dir die gewählten Werte in $_POST zur Verfügung und du kannst damit machen was du willst.

    Klick: https://php-de.github.io/jumpto/ausw...ions-auswerten

    Übrigens es gäbe auch die fetch Möglichkeit assoc, dann bekommst du Arrayfelder mit den Namen sp, anstelle von nichts sagenden nummerischen Indizes [0]. Wobei man hier sagen muss, das sp halt auch nicht das gelbe vom Ei als Name ist. Die sollten selbstsprechend sein und keine kryptischen Abkürzungen.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Dir fehlt die id zum Datensatz aus der Tabelle plz_sp, die du mit ausgeben solltest. Nur mit einer id ist ein Datensatz eindeutig identifizierbar.
      Die id ist dann der Wert im Optionselement des Attribut value.
      Du bekommst als eine Id zurück, die du weiter verwenden kannst.

      Siehe auch https://php-de.github.io/jumpto/auswahllisten/

      Kommentar


      • #4
        Hallo zusammen, vielen Dank für den Tipp.
        ABER: Ich bekomme das einfach nicht hin.
        Mein code sieht nun so aus:

        Code:
        echo "<form action='<?= $PHP_SELF ?>' method='post'>";
                echo "Systempartner: ";
        
        
        //Beginn des Dropdownmenüs
        
        $query1="select distinct sp from plz_sp";
        $ergebnis=mysqli_query($conn_id,$query1);
        echo "<select name='Unternehmer'>";
        
        //hier kommen die Werte in die Option rein
        while ($res = mysqli_fetch_row($ergebnis))
                echo "<option value='eintrag'>".$res[0]."</option>";
        echo "</select>";
        
        array('Unternehmer' => 'eintrag');
        
        $_POST['Unternehmer'];
        echo "<br><br>";
        echo "</form>";
        
        if(isset($_POST['Unternehmer']))
        {
                echo $_POST['Unternehmer'];
                echo "ein Unternehmer<br>";
        }
        Aber es passiert nichts weiter. In 'Unternehmer' sollte ja der Unternehmer stehen, den ich in der Option-Box ausgewählt habe.
        Aber isset sagt, dass da gar nichts drin steht.

        Weiß einfach nicht weiter.

        Thomas

        Kommentar


        • #5
          Vielleicht erst mal Grundlegendes lernen,
          https://php-de.github.io/jumpto/leitfaden/
          EVA-Prinzip
          und
          Affenformullar.

          Dann als Hinweis
          action='<?= $PHP_SELF ?>'
          Das action-Attribut einfach leer lassen. Du hast doch HTML5 als doctype, oder?

          echo "<br><br>";
          Verwende BR-Elemente nicht um Abstände zu erzeugen. Nimm CSS, da gibt es margin und padding.

          Kommentar


          • #6
            Hallo protestix,
            danke für die Hinweise.
            Wie ich in meinem ersten Thread schrieb, ziehe ich mit einigen Programmen von Windows auf Linux um.
            Die html-Programme haben als doctype MTML4.0.
            Das heißt, die Programme sind weitesgehend "fertig" und müssen "nur" portiert werden.
            Dabei (natürlich) auch etwas "aufgehübscht".
            Früher reichte z. Bsp. eine Liste mit Daten für alle 'Unternehmer'. Heute muss es noch ein Auswahlfeld sein, in dem man den Unternehmer auswählen kann, zu dem man Daten erhalten will.
            Also ein bestehendes Programm "einfach" erweitern.
            Die Programme schrieb ich z. T. vor 8 oder 9 Jahren. Muss erstmal überhaupt wieder reinkommen, welche Logik damals dahinter steckte.

            Nochmals vielen Dank und einen schönen Abend noch
            Thomas

            Kommentar


            • #7
              Wahrscheinlich ist es besser das alles neu aufzusetzen und dazu zu lernen wie man es heute macht. Wenn du deine Seiten auf dem Wissen von damals weiter baust kommst du kein Stuck voran. Lernwille vorausgesetzt, weil sonst lasse es machen, HTML4 ist schon seit 4 Jahren erledigt und in dieser schnelllebigen Zeit sind das Welten.

              Kommentar


              • #8
                Ausgabekontext zu HTML richtig behandeln, so baust du dir ein XSS Lücke.. htmlspecialchars() nurtzen.

                DB Fehlerabfragen hast du gar keine drinnen. Sollte man auch behandeln.

                PHP-Code:
                echo "<option value='eintrag'>".$res[0]."</option>" 
                Wie schon oben erwähnt, statt "eintrag" muss die ID rein.
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar

                Lädt...
                X