Re: Re: Re: Re: Re: Re: Formulareingabe behalten - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Claus (4645 Beiträge) am Donnerstag, 10.September.2009, 16:39.
    Re: Re: Re: Re: Re: Re: Formulareingabe behalten

      >So ist es etwas unschön, weil es nach dem Prinzip "erlauben vor verbieten" arbeitet. Sprich: Es ist alles ok, wenn keine Prüfung errmsg beschreibt. Besser ist es, dass alle Prüfungen ok sein müssen, damit der Eintrag angenommen wird. Aber das ist eher eine ästhetisches Problem, als eines über das du dir jetzt Sorgen machen solltest. 
      

      Nur mal so...

      Irgendwie muß man doch die user darauf aufmerksam machen, wenn eine falsche oder unvollständige Angabe vorliegt, oder willst Du die user ohne Fehlermeldung solange eingeben lassen, bis es korrekt ist...?

      ;)


      Kann man natürlich bei Fehlern auch farblich kennzeichnen, aber das ist jedem selbst überlassen...

      Gruesse

      Claus


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Frank (474 Beiträge) am Montag, 7.September.2009, 13:38.
    Formulareingabe behalten

      Ich weiß, daß es unter irgendeinem Thread schon mal zur Sprache kam, aber ich finde es nicht-ich glaube es war von Sander.

      Wenn in einem Formular ein Pflichtfeld nicht ausgefüllt worden ist, kommt ein $emsg mit "Bitte füllen Sie ....aus" und das Formular ist wieder entleert und das könnte den Ausfüllenden nerven. Schön wäre also, wenn der Ausfüllende seine bereits getätigten Eingaben in diesem Fall wieder hat und nur das möglicherweise nicht richtig ausgefüllte, oder vergessene Feld ausfüllen kann.

      Dafür kommen cookies in Frage, oder serial - irgendwas mit session, oder vielleicht viel einfacher der %_cgi hash, aber wie schreibt man es

      ...
      if ($emsg eq "") {
      put [....],"db";
      }else
      {
      out $emsg;
      }
      

      und wo sollte jetzt der hash wie eingebaut werden???

      hier
      http://www.teialehrbuch.de/Kostenlose-Kurse/Perl-und-CGI/10941-Formulare.html

      heißt es jedenfalls

      Die Formular-Felder behalten dank des Moduls CGI automatisch ihre beim letzten Aufruf eingegebenen Werte.

     Antworten

    Beitrag von sebastian (533 Beiträge) am Montag, 7.September.2009, 14:04.
    Re: Formulareingabe behalten

      schaue doch mal in der bib, unter dem silbershop von cb. da gibt es die seite - best -, dort ist alles was du suchst.

     Antworten

    Beitrag von Claus (4645 Beiträge) am Montag, 7.September.2009, 14:14.
    Re: Formulareingabe behalten

      Hallo Frank,

      gibt auch 'ne einfache Möglichkeit:


      if ($emsg eq "") {
      put [....],"db";
      }else
      {
      out $emsg;
      out"<br><br><a href=javascript:history.go(-1);>Zum korrigieren bitte hier oder auf browserback klicken</a><br>";
      

      }


      hth

      Gruesse

      Claus

     Antworten

    Beitrag von Frank (474 Beiträge) am Montag, 7.September.2009, 15:33.
    Re: Re: Formulareingabe behalten

      Die Ausführungen im Silbershop sind nicht gerade unkompliziert, deshalb erstmal javascript, auf jeden Fall vielen Dank für die schnelle Hilfe.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Montag, 7.September.2009, 18:21.
    Re: Re: Re: Formulareingabe behalten

      Da brauchst du keine Komplizierte sachen wie sessions und cookies und javascript und sonnst noch alles. ;)


      Gebe das Formular einfach im Fehlerfall aus und belege die Formularfelder mit den werten die gerade erst geschrieben werden sollten. Fertig!

      Hier mal ein knappes Beispiel (mit dem $emsg, was ich btw. nicht so schön finde):

       <perl>
       if (%_put and length($Name)<=5){
        $emsg = "Bitte einen Namen eingeben der länger ist als 5 Zeichen.";
       }
      
       if ($emsg eq "" and %_put){   put ["Name",$_put{"Name"}],"db";  }else{   $name = $_put{"Name"};   $name=~ s/"/&quot;/gs;   out "<strong>$emsg</strong>" if $emsg ne "";
      out<<"EOF";
      <form action="http://www.baseportal.de/cgi-bin/baseportal.pl?htx=$htx"
      method=post enctype="multipart/form-data">
      <input type="text" name="Name:=" value="$name"><br>
      <input type="submit">
      </form>
      EOF
       }
      

      </perl>

     Antworten

    Beitrag von Frank (474 Beiträge) am Dienstag, 8.September.2009, 17:08.
    Re: Re: Re: Re: Formulareingabe behalten

      Das funktioniert perfekt professionell, lieber Pouraga, ich würde natürlich jetzt auch gerne wissen, warum dir der $emsg-return nicht gefällt, keine große Ausführung, ich bekäme es z.Z. eh nicht aufgearbeitet, nur ein Wort dazu.

      Meine Übersetzung des obigen codes ist:

      Wenn Eingaben gemacht wurden und die Eingabe zum Formfeld 'Name' kleinergleich 5 ist (da muß man erst mal drauf kommen, daß hier automatisch die Buchstaben abgezählt werden) wird die Variable $emsg mit dem String 'Bitte einen Namen eingeben der länger ist als 5 Zeichen.' gefüllt.

      Wenn $emsg ungefüllt ist und Eingaben gemacht wurden, dann wird der String des Feldes 'Name' in das Datenbankfeld 'Name' der datenbank db geschrieben.

      sonst wird die Variable $name mit dem String des Formularfeldes Name gefüllt,
      danach wird ???-ja, was das??? sieht irgendwie wie eine Form von sed aus, wie es in unixbasierten distris standardmäßig installiert ist um Zeichen zu manipulieren

       $name=~ s/"/&quot;/gs;
      

      danach kommt noch: Ausgabe der $emsg-Variablen, falls $emsg nicht leer ist.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 9.September.2009, 10:16.
    Re: Re: Re: Re: Re: Formulareingabe behalten

      So ist es etwas unschön, weil es nach dem Prinzip "erlauben vor verbieten" arbeitet. Sprich: Es ist alles ok, wenn keine Prüfung errmsg beschreibt. Besser ist es, dass alle Prüfungen ok sein müssen, damit der Eintrag angenommen wird. Aber das ist eher eine ästhetisches Problem, als eines über das du dir jetzt Sorgen machen solltest.

      "length" ist kein Geheimnis. Ist ne Standard perl Funktion, kannst nachschlagen. (Hatte es zuerst einfach auf leer überprüft im Beispiel. Mir ist aber noch aufgefallen, dass man so nicht den eigentlichen Sinn des Beispiels sehen könnte)

       > $name=~ s/"/&quot;/gs;
       > sed?
      

      Das ist ein Regulärer Ausdruck (regex): (und perl war zuerst da :))
      http://de.selfhtml.org/perl/sprache/regexpr.htm

      Ersetzt " gegen den html pendanten, weil sonnst das value="$name" "brechen" würde, wenn jemand ein Anführungszeichen eingibt.

      Hast alles richtig erklärt und verstanden, denke du kannst es umsetzen. ;)

      Gruß
      Dennis

     Antworten

    Beitrag von Claus (4645 Beiträge) am Donnerstag, 10.September.2009, 16:39.
    Re: Re: Re: Re: Re: Re: Formulareingabe behalten

      >So ist es etwas unschön, weil es nach dem Prinzip "erlauben vor verbieten" arbeitet. Sprich: Es ist alles ok, wenn keine Prüfung errmsg beschreibt. Besser ist es, dass alle Prüfungen ok sein müssen, damit der Eintrag angenommen wird. Aber das ist eher eine ästhetisches Problem, als eines über das du dir jetzt Sorgen machen solltest. 
      

      Nur mal so...

      Irgendwie muß man doch die user darauf aufmerksam machen, wenn eine falsche oder unvollständige Angabe vorliegt, oder willst Du die user ohne Fehlermeldung solange eingeben lassen, bis es korrekt ist...?

      ;)


      Kann man natürlich bei Fehlern auch farblich kennzeichnen, aber das ist jedem selbst überlassen...

      Gruesse

      Claus

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 10.September.2009, 23:49.
    Re: Re: Re: Re: Re: Re: Re: Formulareingabe behalten

      Du hast nicht verstanden um was es geht. Es geht um die Reihenfolge von verbieten und erlauben und nicht um irgendwelche Fehlermeldungen.

     Antworten

    Beitrag von Claus (4645 Beiträge) am Freitag, 11.September.2009, 16:28.
    Re: Re: Re: Re: Re: Re: Re: Re: Formulareingabe behalten

      solange Du weißt, was damit gemeint ist....

      Die Reihenfolge ist doch eigentlich Banane, denn die Fehlermeldung kommt doch nur, wenn ein Feld nicht korrekt ausgefüllt wurde, ansonsten wird der Eintrag doch übernommen oder sehe ich das jetzt falsch

      Die Fehlergeschichte wird bei mir übrigens demnächst auch anders aussehen (farbliche Kennung der fehlerhaften Felder), aber bisher wird auch bei mir nur dann eine Fehlermeldung ausgegeben, wenn ein Feld falsch ausgefüllt wurde...

      Sieht aber auch schon jetzt bei mir etwas anders aus als bei Frank...

      Gruesse

      Claus

     Antworten


     
 Liste der Einträge von 7800 bis 7950:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.10s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!