if anweisung in der var $text="" im php script

WebRabbit

Mitglied
Hallo allerseits,
hab mal wieder ein "unlösbares" Problem...
Ich möchte gern das Daten aus einem html formular in meinem php script wiederum in eine html tabelle eintragen und versenden.
allerdings soll wenn im formular eine Checkbox angeklickt ist, noch zusätzlich ein bestimmter Text in die Nachricht. das script sieht bisher so aus:
PHP:
<html>
<head>
<title></title>
<meta name="author" content="Webrabbit">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
$mail_empfaenger="R.Friedrich@mlz.de";
$betreff = "Anfrage eines Wartungsdienstauftrages / Technischer Kundendienst für Sieger";
$Header =  "MIME-Version: 1.0\n";
$Header .= "Content-type: text/html; charset=iso-8859-1\n";
$Header .= "From: Sieger@mlz.de\n";
$text="
<html>
<body bgcolor=\"white\">
<table align=\"left\" border=\"1\">
     <tr>
         <td bgcolor=\"#00CCFF\" colspan=\"2\" align=\"center\">Anfrage eines Wartungsdienstvertrages für Technischen Kundendienst Sieger <p></td>
     </tr>
     <tr>
         <td width=\"25%\">Auftraggeber</td>
         <td>".$_POST['auftrag']."</td>
     </tr>
     <tr>
         <td colspan=\"2\">Anschrift<td>
     </tr>
     <tr>
         <td>Name</td>
         <td> ".$_POST['Vorname']." ".$_POST['Name']."</td>

     </tr>
     <tr>
         <td>Strasse</td>
         <td> ".$_POST['Strasse']." ".$_POST['Hausnummer']."</td>
     </tr>
     <tr>
         <td>PLZ, Ort</td>
         <td> ".$_POST['Plz_Anschrift']." ".$_POST['Ort']."</td>
     </tr>
     <tr>
         <td>Telefon Mittags</td>
         <td>".$_POST['TelMittagsVorwahl']." / ".$_POST['TelMittags']."</td>
     </tr>
     <tr>
         <td>Erreichbar von</td>
         <td>".$_POST['VonMittag']." bis ".$_POST['BisMittag']." Uhr.</td>
     </tr>
     <tr>
         <td>Telefon Abends</td>
         <td>".$_POST['TelAbendsVorwahl']." / ".$_POST['TelAbends']."</td>
     </tr>
     <tr>
         <td>Erreichbar von</td>
         <td>".$_POST['VonAbend']." bis ".$_POST['BisAbend']." Uhr.</td>
     </tr>
     <tr>
         <td>Fax</td>
         <td>".$_POST['Vorwahl_Fax']." / ".$_POST['Nummer_Fax']."</td>
     </tr>
     <tr>
         <td>Email</td>
         <td>".$_POST['Email']."</td>
     </tr>
</table>
</body>
</html>";
mail($mail_empfaenger, $betreff, $text, $Header)or die("Die Mail konnte nicht versendet werden.");
print "Email wurde verschickt";
?>
</body>
</html>

Ich hatte dann versucht einfach in den table eine if-abfrage zu schreiben mit dem ergebnis: syntax error.. kA. wie das sonst gehen soll, php ist neu für mich, hab gerade erst ne lektüre bestellt...

Danke für jede Hilfe!
 
Ich weiß nicht genau, wie das heißt, aber:
Du kannst genau wie man eine Variable oder einen Funktionsaufruf in einen String einbaut,
folgendes schreiben:
PHP:
$string="Hallo ".($welt==true?"Welt" : "PHP");
Wenn $welt true ist, wird "Hallo Welt" ausgegeben, sonst "Hallo PHP".
Also ist der Aufbau wie folgt:
[Abfrage]?[für true gib dies zurück] : [für false gib dies zurück]

Ich hoffe, das hilft dir;)
 
Danke, der Befehl ist anderweitig sehr interessant allerdings hilft er mir bei meinem Problem nicht weiter. Das Problem ist, dass ich eine tabelle in html erzeuge. und wenn die checkbox in meinem formular den wert "true" hat, sollen weitere reihen und Spalten mit entsprechendem Inhalt in die Tabelle eingefügt werden. nur gibts immer nen syntax error wenn ich da irgendeine if-anweisung reinbastel.
Muss doch möglich sein, den $text an einer bestimmten stelle zu erweitern?! In Perl hab ich ein ähnliches script geschrieben, da es. aber ich will kein perl mehr verwenden wegen datenbank anbindung.. also muss ich mich zwangsläufig der php problematik stellen.
wäre also super wenn da noch jemand ne andere idee hätte...
 
Martin Schroeder hat gesagt.:
Ich weiß nicht genau, wie das heißt, aber:
Du kannst genau wie man eine Variable oder einen Funktionsaufruf in einen String einbaut,
folgendes schreiben:
PHP:
$string="Hallo ".($welt==true?"Welt" : "PHP");
Wenn $welt true ist, wird "Hallo Welt" ausgegeben, sonst "Hallo PHP".
Also ist der Aufbau wie folgt:
[Abfrage]?[für true gib dies zurück] : [für false gib dies zurück]

Ich hoffe, das hilft dir;)

Ja das is mir auch schon öfters hier aufgefallen, wäre nett wenn das mal einer mit dem entsprechenden Fachausdruck versehen könnte, damit ich und möglicherweise noch wer anders, zu diesem Thema nachschlagen können ;-]
 
PHP:
<html>
<head>
<title></title>
<meta name="author" content="Webrabbit">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
$mail_empfaenger="R.Friedrich@mlz.de";
$betreff = "Anfrage eines Wartungsdienstauftrages / Technischer Kundendienst für Sieger";
$Header =  "MIME-Version: 1.0\n";
$Header .= "Content-type: text/html; charset=iso-8859-1\n";
$Header .= "From: Sieger@mlz.de\n";

$text="
<html>
<body bgcolor=\"white\">
<table align=\"left\" border=\"1\">
     <tr>
         <td bgcolor=\"#00CCFF\" colspan=\"2\" align=\"center\">Anfrage eines Wartungsdienstvertrages für Technischen Kundendienst Sieger <p></td>
     </tr>
     <tr>
         <td width=\"25%\">Auftraggeber</td>
         <td>".$_POST['auftrag']."</td>
     </tr>
     <tr>
         <td colspan=\"2\">Anschrift<td>
     </tr>
     <tr>
         <td>Name</td>
         <td> ".$_POST['Vorname']." ".$_POST['Name']."</td>

     </tr>
     <tr>
         <td>Strasse</td>
         <td> ".$_POST['Strasse']." ".$_POST['Hausnummer']."</td>
     </tr>
     <tr>
         <td>PLZ, Ort</td>
         <td> ".$_POST['Plz_Anschrift']." ".$_POST['Ort']."</td>
     </tr>
     <tr>
         <td>Telefon Mittags</td>
         <td>".$_POST['TelMittagsVorwahl']." / ".$_POST['TelMittags']."</td>
     </tr>
     <tr>
         <td>Erreichbar von</td>
         <td>".$_POST['VonMittag']." bis ".$_POST['BisMittag']." Uhr.</td>
     </tr>
     <tr>
         <td>Telefon Abends</td>
         <td>".$_POST['TelAbendsVorwahl']." / ".$_POST['TelAbends']."</td>
     </tr>
     <tr>
         <td>Erreichbar von</td>
         <td>".$_POST['VonAbend']." bis ".$_POST['BisAbend']." Uhr.</td>
     </tr>
     <tr>
         <td>Fax</td>
         <td>".$_POST['Vorwahl_Fax']." / ".$_POST['Nummer_Fax']."</td>
     </tr>
     <tr>
         <td>Email</td>
         <td>".$_POST['Email']."</td>
     </tr>
    //* So hatte ich das beispiel von Dir umgesetzt...*/
     <tr>
         <td>$string="Anlage".(.$_POST['chkd'].==true?"Anlagenstandort" : "test");</td>
     </tr>

 //* Also hier sollte wenn die Checkbox "chkd" den wert true annimmt weitere      Tabellenreihen in dieser form stehen:
<tr>
    <td>Vorname 2</td><td>".$_POST['Vorname_Standort']."</td>
</tr>
<tr>
    <td>Name 2</td><td>".$_POST['Name_Standort']."</td>
</tr>
etc. halt einfach ne fortsezung der vorhandenen Tabelle in abhängigkeit von der Checkbox im html dokument...
*/


</table>
</body>
</html>";

mail($mail_empfaenger, $betreff, $text, $Header)or die("Die Mail konnte nicht versendet werden.");

print "Email wurde verschickt";
?>
 
PHP:
<html>
<head>
<title></title>
<meta name="author" content="Webrabbit">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
$mail_empfaenger="R.Friedrich@mlz.de";
$betreff = "Anfrage eines Wartungsdienstauftrages / Technischer Kundendienst für Sieger";
$Header =  "MIME-Version: 1.0\n";
$Header .= "Content-type: text/html; charset=iso-8859-1\n";
$Header .= "From: Sieger@mlz.de\n";

$text="
<html>
<body bgcolor=\"white\">
<table align=\"left\" border=\"1\">
     <tr>
         <td bgcolor=\"#00CCFF\" colspan=\"2\" align=\"center\">Anfrage eines Wartungsdienstvertrages für Technischen Kundendienst Sieger <p></td>
     </tr>
     <tr>
         <td width=\"25%\">Auftraggeber</td>
         <td>".$_POST['auftrag']."</td>
     </tr>
     <tr>
         <td colspan=\"2\">Anschrift<td>
     </tr>
     <tr>
         <td>Name</td>
         <td> ".$_POST['Vorname']." ".$_POST['Name']."</td>

     </tr>
     <tr>
         <td>Strasse</td>
         <td> ".$_POST['Strasse']." ".$_POST['Hausnummer']."</td>
     </tr>
     <tr>
         <td>PLZ, Ort</td>
         <td> ".$_POST['Plz_Anschrift']." ".$_POST['Ort']."</td>
     </tr>
     <tr>
         <td>Telefon Mittags</td>
         <td>".$_POST['TelMittagsVorwahl']." / ".$_POST['TelMittags']."</td>
     </tr>
     <tr>
         <td>Erreichbar von</td>
         <td>".$_POST['VonMittag']." bis ".$_POST['BisMittag']." Uhr.</td>
     </tr>
     <tr>
         <td>Telefon Abends</td>
         <td>".$_POST['TelAbendsVorwahl']." / ".$_POST['TelAbends']."</td>
     </tr>
     <tr>
         <td>Erreichbar von</td>
         <td>".$_POST['VonAbend']." bis ".$_POST['BisAbend']." Uhr.</td>
     </tr>
     <tr>
         <td>Fax</td>
         <td>".$_POST['Vorwahl_Fax']." / ".$_POST['Nummer_Fax']."</td>
     </tr>
     <tr>
         <td>Email</td>
         <td>".$_POST['Email']."</td>
     </tr>
    //* So hatte ich das beispiel von Dir umgesetzt...*/
     <tr>
         <td>$string="Anlage".(.$_POST['chkd'].==true?"Anlagenstandort" : "test");</td>
     </tr>

 //* Also hier sollte wenn die Checkbox "chkd" den wert true annimmt weitere      Tabellenreihen in dieser form stehen:
<tr>
    <td>Vorname 2</td><td>".$_POST['Vorname_Standort']."</td>
</tr>
<tr>
    <td>Name 2</td><td>".$_POST['Name_Standort']."</td>
</tr>
etc. halt einfach ne fortsezung der vorhandenen Tabelle in abhängigkeit von der Checkbox im html dokument...
*/


</table>
</body>
</html>";

mail($mail_empfaenger, $betreff, $text, $Header)or die("Die Mail konnte nicht versendet werden.");

print "Email wurde verschickt";
?>
 
Code:
<tr>
         <td>$string="Anlage".(.$_POST['chkd'].==true?"Anlagenstandort" : "test");</td>
     </tr>
So war das jetzt nicht zu verstehen...

Richtig wäre:
Code:
<tr>
         <td>".($_POST['chkd']==true?"Anlagenstandort" : "test")."</td>
     </tr>

Du kennst doch den Verkettungsoperator für Strings("."), oder
So ein Ausdruck mit "?" ergibt ja immer einen Wert, den man für eine Variable oder Konstante einsetzen kann. Du kannst ihn also einfach mit "." an einen String anhängen.
 
Zurück