Via Modal eine DB-Aktion durchführen

  • Guten Tag,


    ich bin Aktuell dabei auf einer Profil Seite Buttons zu erstellen womit man verschiedene Sachen ändern kann.

    Anfangen tue ich aktuell bei der E-Mail.


    Ich möchte gerne das man sobald man auf ein Button klickt seine E-Mail in einem Modal ändern kann.


    Da ich das mit einer "userId" mache, gebe ich dem Button zum öffnen als "value" die "userId" mit.


    Jedoch ändert sich nichts. Das Modal wird geöffnet, aber sobald ich auf "Speichern" Drücke passiert nichts mehr.


    Heißt:


    Ich drücke auf "E-Mail Ändern -> Modal öffnet sich -> Email Adresse steht da (Neue Trage ich ein) -> Drücke auf "Neue E-Mail Speichern" -> Nichts passiert.


    Ich kann so oft ich möchte auf den Speichern Button drücken, aber es wird keine Aktion durchgeführt.


    Hier meine Codes:

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    Datenbank UPDATE (Zum Ändern der E-Mail in der Tabelle):


    Button zum öffnen des Modals:

    PHP
    <button type="button" class="btn btn-default waves-effect m-r-20" value="<?php echo htmlspecialchars($value['userId']) ?>" data-toggle="modal" data-target="#largeModal">MODAL - LARGE SIZE</button>


    Das Modal welches sich öffnet wo man die E-Mail ändern soll (Wo der Button zum Speichern keine Aktion hat):



    Ich hoffe ich habe es ausführlich erklärt, und hoffe das mir jemand Helfen kann.


    Mit freundlichen Grüßen

    CuzImCloud

  • Kann man das mal irgendwo in Aktion sehen. Du weißt ja selber das man solche Fehler besser findet wenn man Link zur Seite hat und das selber testen kann und sehen kann was da passiert.

  • Hey,


    das Drücken Funktioniert nun, jedoch bekomme ich jetzt diesen Fehler:


    Code
    Ein Fehler ist aufgetreten: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens



    Hier nochmal meine Codeschnipsel:




    PHP
    <button type="button" class="btn btn-default waves-effect m-r-20" value="<?php echo htmlspecialchars($value['userId']) ?>" data-toggle="modal" data-target="#largeModal">MODAL - LARGE SIZE</button>




    in der Datenbank heißt das ganze auch "adresse"

  • Du musst doch wissen, was Du in Deinen Scripten verwendest bzw. was die verwendeten Funktionen/Methoden machen?!


    Ok, bevor es hier zu langes hin und her wird, ein ganz heißer Tipp:

    PHP
    $updateEmail = $dbv->prepare("UPDATE users SET adresse = :adresse WHERE userId = :userId");

    Hier initialisierst Du eine Instanz vom Typ PDOStatement, mit Namen $updateEmail.

    Die Query, die das prepare() an das Objekt $updateEmail übergibt lautet UPDATE users SET adresse = :adresse WHERE userId = :userId.


    In der Query hast Du zwei Platzhalter, :adresse und :userId.


    Preisfrage: Welchen Parameter bindest Du nicht mit einem Wert:

    PHP
    $result = $updateUser->execute(
        array(
            ":adresse" => $adresse
        )
    );

    Und genau das sagt Dir die Exception: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

  • Super hat geklappt. Aber es musste ja wieder zu einem Problem kommen.


    Ich habe jetzt nochmal alles kontrolliert.


    Aber jetzt wird die E-Mail nicht geupdatet sondern das Feld wird einfach gelöscht, also die E-Mail verschwindet.


    //


    Mir wurde mal etwas von "XMLHttpRequest" gesagt. Ich weiß nicht ob es damit was zutun hat.

  • Ein <form>-Tag muss alle Formular-Elemente die dessen zugehörig sind umschließen, nicht nur den Submit-Button.

    Der Submit ist nur dazu da, das Formular und dessen Key-Value-Pairs zu übertragen.


    In Deiner <form> ist aber keine E-Mail Adresse enthalten.


    Sei mir nicht böse, aber Du hängst an so vielen Grundlagen, dass ich Dein Vorhaben aktuell in Frage stelle...

  • Okay es funktioniert.


    Vielen Dank.


    Kann gut sein das ich grad soviele Fehler mache weil ich es einfach zackzack mache und nix richtig überlege.

    Werde es aber machen ^^ Bin grad nur etwas im Stress.


    Werde mal besser gucken ^^




    Aber danke für deine Hilfe ^^

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!