2016-05-23 4 views
-2

Ich habe ein dynamisches Formular, das die mobilen Daten sammelt und per PHP-Code an die E-Mail sendet. . Der PHP-Code ist unten angegeben.E-Mail-Beitrag in formatierter Form

<?php 
if(!isset($_POST['submit'])) 
     { 
//Need to submit the form. 
exit; 
     } 
$sl = $_POST['sl']; 
$name = $_POST['name']; 
$place= $_POST['place']; 
$mob = $_POST['mob']; 

$email_body = 
"NAME   PLACE  MOBILE \n". 
“===========================\n\n”; 
$email_body .= 
for ($i = 0; $i < count($sl); $i++) { 
$i= $i+1; 
"(" . $sl[$i] . ") " . $name[$i] . " " . $place . “ “ . $mob . “ “ ;\n"; 
} 

$email_from = '[email protected]'; 
$email_subject = "Phone details"; 
$to = "[email protected]"; 
$headers = "From: $email_from \r\n"; 

mail($to,$email_subject,$email_body,$headers); 
?> 

Der obige Code sendet das Mobil Details in folgenden Weise:

SL NAME   PLACE MOBILE 
(1)Jhon Newyork 6765464564 
(2)Robert steevejobs wshinton 6767565 
(3)Madam levies satllen forthe Canada 454645 

Während ich die Mail in folgendem Format benötigen.

SL NAME       PLACE  MOBILE 
(1) Jhon       Newyork  6765464564 
(2) Robert steevejobs    wshinton  6767565 
(3) Madam levies satllen forthe Canada  454645 

Kann mir irgendjemand dabei helfen?

Antwort

1

Sie könnten eine HTML-Tabelle in Ihrem E-Mail-Körper an:

$body = '<table>'; 
$body .= '<thead><th>Column 1 title</th><th>Column 2 title</th></thead>'; 
$body .= '<tbody>'; 
$body .= '<tr><td>Col 1</td><td>Col 2</tr>'; 
$body .= '</tbody>'; 
$body .= '</table>'; 

Und vergessen Sie nicht in Ihrem Header angeben, die Sie möchten HTML angezeigt werden:

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
+0

Die TD-Breiten unterscheiden sich für jeden (dh SL , NAME, ORT, MOBIL). Statt Tabelle, Isl span Klasse besser? – guruje

+0

passt sich die Tabellenbreite an die Daten an. Also nein, eine Tabelle ist eine viel bessere Option, als mit Stil zu überspannen. Darüber hinaus können Sie die ideale Breite für Ihre Spannen nicht erraten, da die Daten von einem Benutzer zum anderen völlig unterschiedlich sein können – jiboulex

0

Verwenden <table>

$email_body = "<table>"; 
$email_body .= "<tr>"; 
$email_body .= "<td>SL</td>"; 
$email_body .= "<td>NAME</td>"; 
$email_body .= "<td>PLACE</td>"; 
$email_body .= "<td>MOBILE</td>"; 
$email_body .= "</tr>"; 

for ($i = 0; $i < count($sl); $i++) { 
    $i= $i+1; 
    $email_body .= "<tr>"; 
    $email_body .= "<td>(" . $sl[$i] . ")</td> "; 
    $email_body .= "<td>". $name[$i] . "</td>"; 
    $email_body .= "<td>". $place . "</td>"; 
    $email_body .= "<td>". $mob . "</td>"; 
    $email_body .= "</tr>"; 
} 
$email_body .= "</table>"; 
+0

Can mit css verwendet werden, anstatt Tabelle – guruje

+0

ja, aber Tabelle wird Ihnen genaue Abstände geben, so wird es besser sein. – RJParikh

+0

Breite automatisch für alle gleichen in der Tabelle anpassen, so wird es besser zu bedienen. Gib dir die gleiche Wunschausgabe, die du oben in Bild hinzugefügt hast. @guruje – RJParikh

0
$email_body = '<table>'; 
$email_body .= '<thead><th>SL</th><th>NAME</th><th>PLACE</th><th>MOBILE</th></thead>'; 
$email_body .= '<tbody>'; 
$email_body .= '<tr><td>Col 1</td><td>Col 2</td><td>Col 3</td><td>Col 4</td></tr>'; 
$email_body .= '</tbody>'; 
$email_body .= '</table>'; 


add header also - 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
Verwandte Themen