Ankündigung

Einklappen
Keine Ankündigung bisher.

Ungewollte Übertragung von Daten mit Enter oder "Neu laden"

Einklappen

Neue Werbung 2019

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

  • Ungewollte Übertragung von Daten mit Enter oder "Neu laden"

    Hallo,
    habe ein - wahrscheinlich banales - Problem
    Auf meiner Webseite möchte ich Felder zur Verfügung stellen, in die etwas eingetragen werden kann. Der Inhalt der Felder soll mit Drücken des "Submit"- Buttons an die Datenbank gesendet werden - Klappt auch.
    Aber: auch wenn ich die Seite neu Lade oder, wenn der Cursor in einem Feld ist, auf Enter drücke, werden die Daten abgeschickt - das möchte ich natürlich nicht.
    Wer kann mir da helfen?
    Vielen Dank schon mal im voraus.

  • #2
    Enter ist korrekt für das Abschicken eines Formulars, es entspricht dem klick auf submit.
    Von Eingabe- zu Eingabefeld springt man mit der Tabulatortaste.

    Mit einem Reload also F5 sollten keine Daten übertragen werden, wenn du auf submit prüfst.

    Aber zeige ruhig mal dein Formular und das Empfangsscript dazu.

    Kommentar


    • #3
      HTML-Code:
      <form method = "post">
                  <div>Event: <input type = "textarea" name = "event" style = ""/><br></span></div><br>
                  <div>Material: <input type = "text" name = "material" style = ""/><br></div><br>
                  <div>Beschreibung: <input type = "textarea" name = "event_beschreibung" style = ""/><br></div><br>
                  <div>Bilder: <input type = "text" name = "bilder" style = ""/><br></div><br>
                  <div>Preis:  <input type = "number" name = "preis" step='0.01' /><br></div><br>
      
              <input type = "submit" name ="absenden" value = "Eintragen in Datenbank!">            
              </form>

      PHP-Code:
          <?php
              $db 
      = new mysqli('xx-xx-xx'); 

              if(isset(
      $_POST['absenden']))                
                  
      $event =                 $_POST['event'];
                  
      $material =             $_POST['material'];            
                  
      $event_beschreibung =     $_POST['event_beschreibung'];
                  
      $bilder =                 $_POST['bilder'];            
                  
      $preis =                 $_POST['preis'];            

                  
      $absenden $db->prepare("INSERT INTO mydatabase (event, material, event_beschreibung, bilder, preis) VALUES (?, ?, ?, ?, ?)");
                  
      $absenden->bind_param('sssid'$event$material$event_beschreibung$bilder$preis);            
                  
      $absenden->execute();        
              
      ?>

      Kommentar


      • #4
        Sieht was dein Problem betrifft- alles prima aus. Also normales Verhalten des Browsers.

        Kommentar


        • #5
          aber das "normale" Verhalten meines Browser ist nicht mein "erwartetes" Verhalten Wo ist denn da mein Fehler?

          Kommentar


          • #6
            Enter schickt ein Formular ab, das war schon immer so, warum willst du das ändern und gegen den Strom schwimmen.

            Kommentar


            • #7
              Das Problem ist nicht das Enter, das PRoblem ist das "Neu laden" der Seite im Browser

              Kommentar


              • #8
                Mit isset fragst du ja nur den Button submit ab, du kannst dort aber alle Felder die du unbedingt brauchst aufführen.

                Nachdem du alle Felder auch empfangen hast und den Eintrag in die DB vorgenommen hast machst du danach eine Header() Weiterleiung auf GET.

                Damit du Daten nicht verlierst kannst du diese auch in den Inputfeldern vorbelegen. Achte dabei darauf dass ein Erstaufruf ungesetzte Variablen als Fehler ausgibt, diese solltest du also mit NULL initialisieren.

                Lesestoff dazu unter
                https://de.wikipedia.org/wiki/Post/Redirect/Get

                Kommentar


                • #9
                  OK, vielen Dank schon mal - das sehe ich mir an..

                  Kommentar


                  • #10
                    Zitat von explorephp Beitrag anzeigen
                    OK, vielen Dank schon mal - das sehe ich mir an..
                    Dann nutzt halt AJAX.

                    bitcoin.de <- Meine Freelancerwährung

                    Kommentar

                    Lädt...
                    X