Ankündigung

Einklappen
Keine Ankündigung bisher.

Listelement anklicken -> Daten aus DB laden und Input text /select option ausfüllen

Einklappen

Neue Werbung 2019

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

  • Listelement anklicken -> Daten aus DB laden und Input text /select option ausfüllen

    Hallo zusammen,

    ich sitze noch immer an meiner kleinen aber feinen lokalen Website. Ich stehe aber nun vor einem Problem bei dem ich auch mit Google nicht weiter komme, da ich nicht genau weiß wonach ich suchen sollte.
    Sieht man im Threadtitel vielleicht schon

    Also zum Problem:

    Derzeit habe ich eine Benutzerregistrierung und eine Benutzeranmeldung möglich gemacht. Diese funktioniert auch soweit. Auf der Site auf der ich die User editieren möchte, stehe ich nun vor einem Problem:

    Ich habe ein Listenelement, in das die E-Mail Adressen aller User geladen werden.

    PHP-Code:
        $conn = new mysqli($servername$username$password$dbname);
        
    // Check connection
        
    if ($conn->connect_error) {
            die(
    "DB Verbindung nicht möglich: " $conn->connect_error);
            }
        
    $sql "SELECT email FROM users";
        
    $mailresult $conn->query($sql);
        
    $mails $mailresult->fetch_all(MYSQLI_ASSOC); 
    und

    HTML-Code:
    <form>
                <label>Angelegt User:
                    <select name="benutzer" size="10">
                        <?php
                            foreach($mails as $zeile) {
                                echo '<option>'.$zeile['email'].'</option>';
                            }
                        ?>
                    </select>
                </label>
            </form>
    Wie kann ich nun, wenn ich einen Usernamen anklicke, die restlichen Felder mit den Daten aus der DB laden?

    Die restlichen Felder sind die foglenden:

    HTML-Code:
            E-Mail:<br><br>
            <input type="email" id=mail size="40" maxlength="250" name="email"><br><br>
            Vorname:<br><br>
            <input type="text" id=mail size="40"  maxlength="250" name="vorname"><br><br>
            Nachname:<br><br>
            <input type="text" id=mail size="40"  maxlength="250" name="name"><br><br>
            <br>
            <form>
                <input type="radio" id="change" name="pwchange" value="true" checked="checked">
                <label for="mc">Passwort belassen &nbsp &nbsp &nbsp &nbsp</label>
                <input type="radio" id="nochange" name="pwchange" value="false">
                <label for="vi">Passwort ändern</label>
            </form>
            <br><br><br>
            Dein Passwort:<br><br>
            <input type="password" id=pw size="40"  maxlength="250" name="passwort"><br><br>
            Passwort wiederholen:<br><br>
            <input type="password" id=pw2 size="40" maxlength="250" name="passwort2"><br><br>
            Usergruppe auswählen<br><br>
            <select name="rights" id="rights">
                <option value="0">Keine Rechte</option>
                <option value="50">Hauptbenutzer</option>
                <option value="99">Admin</option>
            </select>
    Die Datenbank users hat folgende Felder:

    - id
    - email
    - passwort
    - vorname
    - nachname
    - rightgroup
    - created_at
    - updated_at

    Grundsätzlich müssten die Daten ja bereits im Array enthalten sein, da ich die Daten ja komplett abfrage am Anfang...
    Leider hilft mir dieses Wissen noch nicht wirklich weiter. Euch vielleicht?

    In VB könnte ich das ganze easy umsetzen, aber in Webentwicklung stehe ich noch gaaaaanz am Anfang.

    Schönen Abend noch



  • #2
    Hi,

    erstmal fehlt dir ein Button unter Select:
    siehe: https://stackoverflow.com/questions/...tml-select-tag

    Beim -klick- müsstest du eine Foreachschleife über $mails machen, in der du per If abfragst ob der ['email'] des klicks = ['email'] des akutellen Foreach-objects ist. (oder du machst eine neue DB Abfrage, je nach dem was schneller ist )

    Anschließen kannst du mit dem Schlüssel -Value- die Felder vorbelegen in deinem Fall als Beispiel also:


    PHP-Code:
      <?php ...                        
    foreach(
    $mails as $zeile) {                            
     if (
    $zeile['email']== $input_from_select)                               {
      
    // Variablen vorbelegen                              
      
    $val_email=$zeile['email']                              
      
    $val_vorname $zeile['vorname']                  
     ...
     }  ;                        
    }                     
    ?>
    und anschließen:

    HTML-Code:
    E-Mail:<br><br>
    <input type="email" id=mail size="40" maxlength="250" name="email" value="<?php echo $val_email ?>"  >
    <br><br>
    Vorname:<br><br>        
    <input type="text" id=mail size="40"  maxlength="250" name="vorname" value="<?php echo $val_vorname?>">
    <br><br>
    ...  
    Hoffe das hilft dir weiter.

    Grüße

    Kommentar


    • #3
      Wie kann ich nun, wenn ich einen Usernamen anklicke, die restlichen Felder mit den Daten aus der DB laden?
      du möchtest sicher, dass bei eine click event, per fetch die restlichebn daten des users vom server geladen werden und dann (sicherüberlicher als modal dialog ) angezeigt werden.

      da musst du jetzt viel googlen und was versuchen.

      Kommentar


      • #4
        Erster Schritt, Optionen richtig erstellen und die Auswahl per POST an PHP senden.
        Code:
        <!DOCTYPE html>
        <html lang=de>
          <meta charset=UTF-8>
          <title>Document</title>
          <form method=POST>
           <label for=user>Benutzer:</label>
            <select name=user id=user
             onchange=this.form.submit()>
              <option value="">bitte wählen
              <option value=Max>Max
              <option value=Moritz>Moritz
              <option value=Till>Till
            </select>
          </form>
          <form>
             <!--  restl. Daten -->
          </form>
        Ich würde den erstellten HTML-Code öfter mal durch den HTML Validator schicken...

        Grundsätzlich musst Du entscheiden ob Du Ajax nutzen willst. Das folgende Beispiel zeigt hierzu die grundsätzliche Vorgehensweise:

        https://www.php.de/forum/webentwicklung/javascript-ajax-und-mehr/1605565-daten-über-ajax-im-javascriptformular?p=1605579#post1605579

        Kommentar

        Lädt...
        X