Eingegebene Wörter im Lückentext behalten

  • Hey,


    unzwar ich habe mal ein Lückentext erstellt. Und ich möchte das wenn ein fehler drin ist die ganzen eingegebenen Wörter bleiben und die felder die falsch waren rot markiert werden.


    Nun aber wenn ich mein Lückentext dann absende dann gehen alle Wörter verloren und dann wird ausgegeben: Sie haben ein Fehler gemacht....... Ich könnte theoretisch jetzt jedes feld abfragen ob das eingegeben Feld richtig oder falsch ist. Aber trotzdem gehen die Wörter verloren und wie bekommt man denn dann den roten rahmen im php dann um die fehlerhaften Felder ? Und wie bekommt man es dann hin die eingegeben wörter dann unten bei Fehlende wörter durchzu streichen also z.b. ich gebe jetzt Rotkäppchen ein und dann wird bei Fehlende Wörer Rotläppchen durchgestrichen : Rotkäpchen.


    Mein Script:



    Freue mich auf eure Hilfe.


    Gruß,
    Stef

  • Du kannst deine Formularfelder einfach so anpassen:


    PHP
    <input type="text" name="rotkaepchen" <?php print ($wort1 == $ltw1) ? 'value="'. $wort1 .'"' : ""; ?>>


    Oder mit if:


    PHP
    <input type="text" name="rotkaepchen" <?php if($wort1 == $ltw1) print 'value="'. $wort1 .'"'; ?>>
  • Hey,


    vielen Dank für die schnelle Antwort.


    Es kommen jedoch Fehlermeldungen.


    Hier ein Bild der Fehler : http://prntscr.com/c1gt8w
    Und das geht mit jedem Feld, erst wenn ich die felder ausfülle dann gehen die fehlermeldungen weg.


    Warum ist das so ? Habe doch jede Var definiert...


    Und dann noch was. Ich habe jetzt ein array erstellt der alle ausgaben beinhaltet. nun möchte ich ihn aber erst im HTML-Teil ausgeben, und da kommt immer ein error und undefined variable arr, obwohl ich doch im php teil oberhalb des HTML-Teils $arr schon definiert habe.. Und wenn ich jetzt wie bei den anderen fehlermeldungen ein feld ausfülle dann gehen die fehler weg, und es werden die ausgaben ausgegebn.


    Mein Script:



    Gruß,
    Stef

  • Okay dann musst du noch mit isset abfragen ob die Variablen gesetzt sind:


    PHP
    <input type="text" name="rotkaepchen" <?php if(isset($wort1)) print ($wort1 == $ltw1) ? 'value="'. $wort1 .'"' : ""; ?>>
  • Hey vielen Dank habe nun mein script angepasst, auch die arrayausgabe und es funktioniert alles :)


    Hier nochmals das volle Script:



    Stef

  • Ich kann dir an der Stelle noch empfelhen das Ausrufezeichen beim Vergleichen vor die Gleichheitszeichen zu setzen:


    Code
    !==
    statt
    ==!


    Beide Wege funktionieren, jedoch nur in diesem einen Fall. Folgende Beispiele z. B. sind fehlerhaft:


    PHP
    print var_dump(!true); // Ausgabe: bool(false) 
    print var_dump(true!); // Ausgabe: Parse error: syntax error, unexpected '!'
    PHP
    print var_dump(true != false); // Ausgabe: bool(true)
    print var_dump(true =! false); // Ausgabe: Parse error: syntax error, unexpected '!'


    So kommst du später nicht durcheinander.

  • Ja ok.


    Aber falls ich es so beibehalten würde, würden in der Zukunft Fehler auftreten. Und um dies zu verhindern, mach ich es jetzt so wie du es geschrieben hast, steht ja auch so in vielen tuts drin.

Jetzt mitmachen!

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