Formulardaten werden nicht an mysql übermittelt

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • AmicaNoctis
    replied
    Formular How-To

    Originally posted by Tutor View Post
    Was ich nicht verstehe, [...] dass meine Variablen als undefined gewertet werden.

    ist doch eigentlich klar, dass [...] $link_neu auch erst dann einen Wert hat wenn ich submitte?!
    Stimmt genau, also hast du es ja doch verstanden. Man könnte z. B. so vorgehen:

    PHP Code:
    <?php
        
    // Standardmäßig das Formular anzeigen
        
    $showForm true;
        
        
    // alle Felder definieren
        
    $required = array("id""name""emailAdresse", ...); // Pflichtfelder
        
    $optional = array("vorname""telefon", ...);         // freiwillige Felder
        
        // Formulardatencontainer initialisieren
        
    $data = array();
        foreach (
    array_merge($required$optional) as $name) {
            
    $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : "";
        }
        
        
    // Wenn submitted wurde...
        
    if (isset($_POST["submit"])) {
            
    // erneute Formularanzeige unterdrücken
            
    $showForm false;

            
    // Fehlerarray initialisieren
            
    $errors = array();
            
            
    // Pflichtfelder prüfen und in den Formulardatencontainer importieren
            
    foreach ($required as $name) {
                
    $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : "";
                if (!
    $data[$name]) {
                    
    $errors[] = "Pflichtfeld " $name " ist nicht angegeben.";
                }
            }
            
            
    // freiwillige Felder in den Formulardatencontainer importieren
            
    foreach ($optional as $name) {
                
    $data[$name] = isset($_POST[$name]) ? trim($_POST[$name]) : "";
            }
            
            
    // weitere Prüfungen auf Sinnhaftigkeit
            
    if (!is_numeric($data["geburtsjahr"])) {
                
    $errors[] = "Geburtsjahr muss numerisch sein."
            
    }
            ...
            
            
    // Fehler?
            
    if ($errors) {
                
    // Formular jetzt doch wieder anzeigen ...
                
    $showForm true;
                
                
    // aber erstmal die Fehler melden
                
    echo("<div class='errors'><p>");
                echo(
    implode("</p><p>"$errors));
                echo(
    "</p></div>");
            }
        }
        
        if (
    $showForm) {
            
    // Formular anzeigen
        
    }
    ?>
    Gruß,

    Amica
    Last edited by AmicaNoctis; 04-02-2010, 14:56. Reason: Code geändert wegen berechtigter Kritik

    Leave a comment:


  • Quetschi
    replied
    Ich bitte dich nochmal auch deinen Quellcode im Eingangspost entsprechend zu editieren, dass keine horizontale Scrollleiste entsteht

    Sieh dir bitte nochmal den Quelltext im Browser an, wenn du das Formular vor dir hast und schau da mal nach was im action-Attribut des <form>-Tag steht!

    Pack auch deine Query in eine Variable und setze diese bei mysql_query() ein und lass sie dir zusätzlich ausgeben.

    Leave a comment:


  • wahsaga
    replied
    Originally posted by Tutor View Post
    ist doch eigentlich klar, dass z.B.

    $link_neu = $_POST['link_neu'];

    $link_neu auch erst dann einen Wert hat wenn ich submitte?!
    Ja - aber du fragst nirgendwo ab, ob der Scriptaufruf denn überhaupt durch das Abschicken eines Formulars stattgefunden hat.
    Wenn nicht, wenn es ein simpler GET-Request war - dann sind die entsprechenden Werte in $_POST natürlich gar nicht vorhanden.

    Leave a comment:


  • Tutor
    replied
    So habe es mal aufs wesentliche beschränkt:

    1. Die Varablennamen stimmen mit den Namen im form Tag überein und genauso mit den Parametern in der DB.

    2. Was ich nicht verstehe, aber wo ich jetzt nicht zwingend den Fehler sehe ist, dass meine Variablen als undefined gewertet werden.

    ist doch eigentlich klar, dass z.B.

    $link_neu = $_POST['link_neu'];

    $link_neu auch erst dann einen Wert hat wenn ich submitte?!

    Oder verstehe ich da was falsch??
    Last edited by Tutor; 04-02-2010, 14:23.

    Leave a comment:


  • Quetschi
    replied
    Bitte unbedingt Quellcode umbrechen wie Kropff es schon gesagt hat - am besten editierst du einfach diesen nicht relevanten html-Teil, der so in die Breite geht, einfach weg.

    Guck dir mal den html-Quelltext an wenn du das Formular im Browser angezeigt bekommst und schau mal, was dann beim <form>-Tag im action Attribut drin steht oder mach alternativ mal Testausgaben von $_GET["id"] und $_GET["id_art"].

    Leave a comment:


  • Kropff
    replied
    Bitte schleunigst den Quellcode umbrechen!

    Danke
    Peter

    Leave a comment:


  • Tutor
    started a topic Formulardaten werden nicht an mysql übermittelt

    Formulardaten werden nicht an mysql übermittelt

    Ih weiß auch nicht mehr woran es liegen kann - die Daten werden einfach nicht eingetragen. Wenn ich print_r test werden aber alle arrays richtig angebenen.

    Das komische ist das nach dem submitbutton zwar "die Änderung war erfolgreich" kommt aber dann die vorher sichtbaren daten aus den Feldern verschwunden sind - nur bei Link steht Ressource#2?!? Aber keine Daten gehen in die DB
    Last edited by Tutor; 04-02-2010, 14:23.
Working...
X