Beitrag von Tini (187 Beiträge) am Montag, 29.Dezember.2003, 10:56.
formular - 1 statt 2 templates ?? möglich ??
hallo,
meine formulare habe ich so gestaltet, daß
im tempalte "formular" die eintragungen vorgenommen werden
und an das template "senden" übergeben werden, wo:
pflichtfelder überprüft werden
-die daten in die datenbank eingetragen werden
-die eintragsdaten per mail verschickt werden
gibt es die möglichkeit, die beiden templates in einem
einzigen template zu haben??
danke
tini
template "formular":
<form action="http://www.domain.de/baseportal?htx=/domain.de/senden"&cmd=add" method=post enctype="multipart/form-data">
<input type="hidden" name="cmd=" value="add">
<input type="hidden" name="htx=" value="/domain.de/senden">
template "senden":
if ($cmd eq "add") {
$err.=" -Pflichtfeld1<br>" if $_put{Pflichtfeld1} eq "";
$err.=" -Pflichtfeld2<br>" if $_put{Pflichtfeld2} eq "";
}
if ($err ne ""){
undef %_put;
}
if ($err ne "") {
out "<b>Der Eintrag wurde nicht vorgenommen.</b> <br>$err";
undef %_put;
}else{
$senddat=datum('jetzt', 'intern');
if($cmd eq "add")
{
mail "$Email", "Betreff", "
Text
", "Email1", "$Name", "Text", "$Email3", "";;
</perl>
bla bla Text nach Bestätigung des senden-Buttons.
<do action=input db=daten>
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 29.Dezember.2003, 12:06.
Re: formular - 1 statt 2 templates ?? möglich ??
Hallo, tini,
kein Problem - du hast ja auch schon den richtigen Ansatz drin...
Erst mal kannst du die zwei * if ($err ne "") * zusammenfassen, stehen eh schon hintereinander...genauso die vielen * if ($cmd eq "add") *
Dann einfach im if/else-Block für den Parameter cmd da dann das Formular ausgeben, wenn cmd nicht den Wert "add" hat - also in etwa so:
---schnipp
<perl>
if ($cmd eq "add") {
$err.=" -Pflichtfeld1<br>" if $_put{Pflichtfeld1} eq "";
$err.=" -Pflichtfeld2<br>" if $_put{Pflichtfeld2} eq "";
if ($err ne ""){
out "<b>Der Eintrag wurde nicht vorgenommen.</b> <br>$err";
undef %_put;
} else {
$senddat=datum('jetzt', 'intern');
mail "$Email", "Betreff", "Text", "Email1", "$Name", "Text", "$Email3","";
out<<EOF;
<p>
bla bla Text nach Bestätigung des senden-Buttons.
EOF
} # E if/else err
} else {
out<<EOF;
Eingabeformular:
<form action="http://www.domain.de/baseportal?htx=/domain.de/senden"&cmd=add" method=post enctype="multipart/form-data">
<input type="hidden" name="cmd=" value="add">
<input type="hidden" name="htx=" value="/domain.de/senden">
...
</form>
EOF
} # E if/else cmd
</perl>
<do action=input db=daten>
---schnapp
Hth
Ruben
Antworten
Beitrag von Tini (187 Beiträge) am Montag, 29.Dezember.2003, 12:42.
Re: formular - 1 statt 2 templates ?? möglich ??
hi ruben,
werde ich später gleich mal probieren.
danke :-)
tini
Antworten
Beitrag von Tini (187 Beiträge) am Montag, 29.Dezember.2003, 15:22.
Re: formular - 1 statt 2 templates ?? möglich ??
hallo ruben,
habe das so weit gemacht (versucht),
bekomme aber folgende fehlermeldung?!?
[ Fehler: Fehlerhafter Perl Code in :
syntax error at (eval 25) line 65, near "# E if/else err } else" ]
den part mit "# E if/else err } else"
hatte ich deinem beitrag entnommen.
tini
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 29.Dezember.2003, 16:27.
Re: formular - 1 statt 2 templates ?? möglich ??
Hallo, tini,
mhm - also das deutet daraf hin, dass hier was mit den Perl-Blöcken nicht stimmt (Blöcke immer mit { und } "eingerahmt") - zähl mal die öffnenenden und die schließenden geschweiften Klammern, Zahl muss identisch sein ;-)
Du musst dir die Wirkungsweise der Perl-Routine mal versuchen klarzumachen, ich kommentiers hier nochmal (Kommentare in Perl mittels # beginnend, alles nach einem # wird nicht mehr interpretiert... ) - normalerweise müsste das so funzen, wie ich gepostet habe...
---schnipp
<perl>
if ($cmd eq "add") { # wenn $cmd gleich "add" ist
# schaun, ob in Pflichtfelder was eingegeben wurde, wenn nicht, Variable err füllen
$err.=" -Pflichtfeld1<br>" if $_put{Pflichtfeld1} eq "";
$err.=" -Pflichtfeld2<br>" if $_put{Pflichtfeld2} eq "";
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
if ($err ne ""){ # wenn Var err nicht leer ist Fehlermeldung ausgeben
# put-Hash leeren, damit nichts gespeichert wird
out "<b>Der Eintrag wurde nicht vorgenommen.</b> <br>$err";
undef %_put;
} else { # wenn nichts in err steht
$senddat=datum('jetzt', 'intern'); # $enddat füllen
mail "$Email", "Betreff", "Text", "Email1", "$Name", "Text",
"$Email3",""; #mail verschicken
# Bestätigungstext ausgeben
out<<EOF;
<p>
bla bla Text nach Bestätigung des senden-Buttons.
EOF
} # E if/else err
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
} else { # wenn cmd nicht "add" ist
# Eingabeformular ausgeben
out<<EOF;
Eingabeformular:
<form action="http://www.domain.de/baseportal?htx=/domain.de/senden"&cmd=add" method=post enctype="multipart/form-data">
<input type="hidden" name="cmd=" value="add">
<input type="hidden" name="htx=" value="/domain.de/senden">
...
</form>
EOF
} # E if/else-cmd
</perl>
<do action=input db=daten>
----schnapp
Wichtig - wenn ein Kommentar irgendwo in ner Zeile ist, dann mit Perl-Zeichen auf ner neuen Zeile anfangen, sieht bei der Fehlermeldung fast so aus, als hättest du die Blockklammer noch in der Komemntarzeile stehen....
Hth
Ruben
Antworten
Beitrag von Tini (187 Beiträge) am Dienstag, 30.Dezember.2003, 09:40.
Re: formular - 1 statt 2 templates ?? möglich ??
guten morgen,
hat geklappt :-)
1 frage habe ich noch für dieses jahr.
wenn nicht alle pflichtfelder ausgefüllt sind, kommt ja der hinweis
"Ihre Kleinanzeige konnte nicht ....."
wie bekomme ich es denn hin, daß er mir auch automatisch eine info
rausgibt, wenn alle pflichtfelder ausgefüllt wurden, bzw. der eintrag
vorgenommen wurde?
danke
tini
--------------
$err.="<font face=verdana,helvetica size=-1 color=#FF0000>
-Anzeigentyp<br>" if $_put{Anzeigentyp} eq "";
if (length($_put{Text}) > 120){
$err.="<font face=verdana,helvetica size=-1 color=#FF0000>
Ihr Eintrag darf max. 120 Zeichen haben.<br>";
}
if ($err ne ""){
undef %_put;
}
if ($err ne "") {
out "<b>Ihre Kleinanzeige konnte nicht entgegengenommen werden.<br>
Es wurden nicht alle Felder korrekt ausgefüllt.</b> <br>$err";
undef %_put;
}else{
$senddat=datum('jetzt', 'intern');
if($cmd eq "add")
-------------------------------------
Antworten
Beitrag von hempelr (1976 Beiträge) am Dienstag, 30.Dezember.2003, 18:38.
Re: formular - 1 statt 2 templates ?? möglich ??
Antworten
Beitrag von Tini (187 Beiträge) am Mittwoch, 31.Dezember.2003, 00:04.
Re: formular - 1 statt 2 templates ?? möglich ??
hallo ruben,
oops, daß doppelt gemoppelte habe ich übersehen
und den ausgabetext bei korrekter eintragung habe
ich falsch gesetzt.
auf jeden fall ist in sachen perl ein groschen mehr
bei mir gefallen und so spar ich mir wieder ein template
pro formular.
kann man die fehlermeldungen, bzw. die info über die korrekte
eintragung so setzen, als ob man eine neue seite hätte.
jetzt ist es ja so, daß die infos unter dem formular erscheinen.
schön wäre ja, wenn der infotext auf einer "leeren" seite erscheint
und man über einen zurück-button (java) auf das eigentliche formular
zurück kommt - wäre übersichtlicher.
da ist die sache mit 2 templates einfach übersichtlicher.
so - schluß jetzt erstmal dieses jahr!
rutscht alle gut rüber - bis nächstes jahr !
ich freue mich
tini
Antworten
Beitrag von Jan Vaceanu (1 Beitrag) am Mittwoch, 28.Januar.2004, 15:52.
Re: formular - 1 statt 2 templates ?? möglich ??
Du willst Dreadlocks haben? Dreads vom Profi gibt`s bei Jan Vaceanu in Bad Nauheim. Termin nach Vereinbarung unter: 0175-28031112 Auch erreichbar unter: Jan_Vaceanu@yahoo.com
Antworten
Beitrag von sprooben (1 Beitrag) am Samstag, 14.Januar.2006, 07:42.
Re: formular - 1 statt 2 templates ?? möglich ??
<perl>
if ($cmd eq "add") {
$err.=" -Pflichtfeld1<br>" if $_put{Pflichtfeld1} eq "";
$err.=" -Pflichtfeld2<br>" if $_put{Pflichtfeld2} eq "";
if ($err ne ""){
out "<b>Der Eintrag wurde nicht vorgenommen.</b> <br>$err";
undef %_put;
} else {
$senddat=datum('jetzt', 'intern');
mail "$Email", "Betreff", "Text", "Email1", "$Name", "Text", "$Email3","";
out<<EOF;
<p>
bla bla Text nach Bestätigung des senden-Buttons.
EOF
} # E if/else err
} else {
out<<EOF;
Eingabeformular:
<form action="http://www.domain.de/baseportal?htx=/domain.de/senden"&cmd=add" method=post enctype="multipart/form-data">
<input type="hidden" name="cmd=" value="add">
<input type="hidden" name="htx=" value="/domain.de/senden">
Antworten