Formatierung mail.htt

Hallo,

ich hab da mal ne Frage und über die Suche nichts gefunden.

Ich habe ein Mailformular eingerichtet und dazu eine Datei mail.htt Bsp:

Datum:

Jetzt möchte ich gerne das Wort „Datum:“ nur angezeigt haben, wenn in das Formularfeld auch was eingetragen ist.

Ist da möglich? Wenn ja wie?

Schon mal Danke für Hilfen!

Grüße
Kai

Hallo Kai,

nun … Du prüfst, ob das Formularfeld ein Value hat.
Wenn nicht, dann …

$mail_Vorlage=str_replace("Datum: ", „“,$mail_Vorlage)

Je nachdem wie Du das auf gebaut hast, kannst Du natürlich auch für "Datum: " auch "$key: " nehmen.

mfg
Klaus

Hallo Klaus,

danke für deine Antwort

hhmmm… hab jetzt ein bißchen rumprobiert, abert es haut nicht hin und ich bin was php angeht absoluter Frischling. Deswegen hier der php-code:

<?php $recipient = "[email protected]";
$fmtResponse= implode("", file("response.htt")); $fmtMail= implode("", file("mail.htt")); foreach($\_POST as $key=\> $val) { $fmtResponse= str\_replace("", $val, $fmtResponse); $fmtMail= str\_replace("", $val, $fmtMail); } if ($\_POST["access"] == "irregeheim") { $fmtMail = preg\_replace( "//", "", $fmtMail ); mail($recipient, $\_POST["subject"], $fmtMail,); } echo $fmtResponse; ?\> Ich hab's ja schon mal hinbekommen, dass durch die mail.htt bei leeren Formularfeldern nicht die Variablen mit verschickt werden. Aber mein ursprüngliches Problem besteht immer noch. Vielleicht ist durch den php-code die Problemlösung einfacher. Danke im voraus! Grüße Kai

Hallo Kai,
also wenn in der htt das wirklich so aufgebaut ist

Variablename:

dann würde in dieser Schleife, wenn das Formular-Element kein Value hat, beides gelöscht = gegen „“ ersetzt werden


foreach($_POST as $key=> $val) {

if ($val == „“) {
$fmtResponse= str_replace("$key: „, „“ , $fmtResponse);
$fmtMail= str_replace(“$key: „, „“ , $fmtMail);
}
else {
$fmtResponse= str_replace(“", $val, $fmtResponse);
$fmtMail= str_replace("", $val, $fmtMail);
}
}

Gruß
Klaus

Hallo Klaus,

dank für deine Antwort. Ich probiers später aus und sag Bescheid.

Hier aber noch meine mail.htt:

Datum: –
vorläufige Nummer: -2011
Einsatzort:
Alarmzeit:
Lage:

Einsatzabbruch /-ende: /

Einsatzleiter:

Staffeln und Stärke:
EL: RH-Teams: Helfer: EL: RH-Teams: Helfer: EL: RH-Teams: Helfer: EL: RH-Teams: Helfer:

Für die Felder EL:, RH-Teams und Helfer bräuchte ich die Funktion.

Grüße
Kai

Hallo Kai,

dann wird das nicht funktionieren, weil der „Text“ für den $key nicht mit dem $key übereinstimmt.

Alternativ:
die htt nur bis „Staffel und Stärke:“ und dann
in einer Schleife (1-4) Value abfragen und wenn vorhanden der $fmtMail anhängen.

Gruß
Klaus

Hallo Klaus,

es funktioniert soweit. Sobald in dem Feld „Staffel1“ etwas eingetragen ist, erscheint der Rest. Das reicht mir soweit. Großes Danke :smile:

Was allerdings noch eleganter wäre, die 4 Staffeln per checkbox auszuwählen. Hast Du da vielleicht auch noch nen Tip?

Grüße
Kai

Hallo Kai,

Was allerdings noch eleganter wäre, die 4 Staffeln per
checkbox auszuwählen. Hast Du da vielleicht auch noch nen Tip?

Ich weiss ja nicht, wie die Staffeln organisiert und welche Felder mitunter fest belegt sind … z.b. als hidden.
oder…

Soll das Formular nur Daten einer Staffel entgegennehmen?
Klar … aber dann würde ich eher ein oder radio-button nehmen.

Dann braucht es auf dem Formular jeweils nur ein staffel,el … etc. geben.

Gruß
Klaus

Hallo Klaus,

es geht immer mindestens eine der Staffeln in den Einsatz (Einsatzkooperation). Meistens arbeiten wir aber zusammen.

Somit wäre es einfacher, die Staffeln fest zu nennen und per zum Beispiel checkbox die beteiligten auszuwählen, und die Anzahl der EL, Teams & Helfer einzutragen.

Die festgenannten Staffeln mit EL etc. die nicht ausgewählt wurden erscheinen dann auch nicht in der Mail.

Also genauso wie jetzt auch, nur dass man den Staffelnamen nicht eintragen muss.

Danke schon mal

Gruß
Kai

Hallo Kai,

tut mir leid …???.. Bahnhof :smile:)

meinst Du mit checkbox ?

alles was vom Formular geschickt wird, muss „irgendwie“ verarbeitet werden.

mfg
Klaus

Hallo Klaus,

lag vielleicht an meiner Nachricht.
Hier nochmal neu:

Aktuelles Formular:

Staffel 1:
EL: RH-Teams: Helfer:

Staffel 2:
EL: RH-Teams: Helfer:

Staffel 3:
EL: RH-Teams: Helfer:

Staffel 4:
EL: RH-Teams: Helfer:

im php-Script ist das momentan so gelöst:

<?php $recipient = "[email protected]";
$fmtResponse= implode("", file("response.htt")); $fmtMail= implode("", file("mail.htt")); foreach($\_POST as $key=\> $val) { if ($val == "") { $fmtResponse= str\_replace("$key: ", "" , $fmtResponse); $fmtMail= str\_replace("$key: ", "" , $fmtMail); } else { $fmtResponse= str\_replace("", $val, $fmtResponse); $fmtMail= str\_replace("", $val, $fmtMail); } } if ($\_POST["access"] == "irregeheim") { $fmtMail = preg\_replace( "//", "", $fmtMail ); mail($recipient, $\_POST["subject"], $fmtMail, ); } echo $fmtResponse; ?\> ---------------------------------------------- Meine Idee war nun folgende: -------------------------------------------- Staffel 1 EL: RH-Teams: Helfer: Staffel 2 EL: RH-Teams: Helfer: Staffel 3 EL: RH-Teams: Helfer: Staffel 4 EL: RH-Teams: Helfer: ------------------------------------- Das ganze dann im Script so hinterlegt, dass wenn checkbox = checked, die jweilige Zeile (=Staffel) in der Mail mit ausgegeben wird, mit den Werten die bei EL etc. angegeben ist. Ist checkbox nicht aktiviert, soll die Zeile(=Staffel) in der Mail unterdrückt werden. Ich hoffe ich habs jetzt verständlicher ausgedrückt?! Grüße Kai

Hallo Kai,

Ich hoffe ich habs jetzt verständlicher ausgedrückt?!

ja …
aber das bringt ja nicht viel Unterschied.
Wenn eine checkbox checked ist, dann wird name&value vom Browser übertragen. Ob ich nun auf Vorhandensein der checkbox oder Value von StaffelX prüfe ist gehüpft wie gesprungen :smile:), und an einer Schleife kommst Du nicht vorbei.

Eine andere Möglichkeit wäre, das im HMTL zu machen:

die inputs EL1, Helfer1 etc. sind auf disabled gesetzt.

in der function Test wird geprüft, ob checkbox checked ist, und dann werden die input-felder aktiviert.

form-elemente, die auf disabled stehen, werden nicht übertragen = php braucht nicht prüfen

Gruß
Klaus

Hallo Klaus,

hmmm… die function Test wäre dann Java? Sehe ich das richtig?
Allerdings kann man Java auch abschalten.

Wie löse ich das Ganze mit einer Schleife??

Grüße
Kai

Hallo Kai,

hmmm… die function Test wäre dann Java?
Sehe ich das richtig?

fast … javascript!!
stimmt … javascript kann im Browser deaktiviert werden

denke aber mal:
die Benutzer/Eingabeberechtigte wären darüber informiert!!

und Test() würde ganz gut funktionieren … mit gewissen Anpassungen = IDs im input-tag … z.B. so :


function Test(was){
var felder=new Array(„Staffel“,„EL“,„RH-Teams“,„Helfer“)

if (document.getElementById(„check“+was).checked==true)
{
document.getElementById(„in“+was).style.visibility=„visible“;
document.getElementById(„akt“+was).innerHTML=was + „. Staffel eingeben“;
for (var i = 0; i

Wie löse ich das Ganze mit einer Schleife??

so ähnlich wie in Test(), denn da geht es auch über eine Schleife und wie der Inkrement genutzt werden kann

mfg
Klaus