Цикл Foreach не работает в PHP при форматировании для mail () - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть массив объектов, и я хочу создать онлайн-счет для отправки по почте.Для этого я изменил сообщение следующим образом:

function mail_invoice($buyer_info,$items_info ,$date,$final_amount)
{
    global $template;

    //var_dump($buyer_info);


    $to = $buyer_info->email;
    $from_mail = 'info@7sisters.in';
    //echo $msg.$to.$from;sender_mail
    $subject = "Your Invoice";
    $message = "Your Shopping Details";
    $message .= '
            <h2>RETAIL INVOICE</h2>
                <p>
                    SRI SAI VENTURES PVT LTD.<br />
                    House Number 13A<br />
                    Nizarapar<br />
                    Guwahati - 781003<br />
                    Assam
                </p>

                <p>
                    Buyer <br />
                    <b>'.$buyer_info->fname.' '.$buyer_info->lname.'</b><br />
                    '.$buyer_info->address.'<br />
                    PIN - '.$buyer_info->pin.'<br />
                    PHONE '.$buyer_info->phone.'<br />
                </p>

                <p>
                    Dispatch Date : '.$date.'
                </p>
                <table>
                    <tr>
                        <th>Sl No</th>
                        <th>Description of goods</th>
                        <th>Quantity</th>
                        <th>Rate</th>
                        <th>Amount</th>
                    </tr>'. 

                (foreach $items_info as $a=>$v).'      <----line no 1025
                    <tr>
                        <td>'.++$ind.'</td>
                        <td>'.$v->brand.','.$v->model.'</td>
                        <td>'.$v->quantity.'</td>
                        <td>'.$v->price.'</td>
                        <td>'.$v->total_cost.'</td>
                    </tr>'.
                {/foreach}
                    .'<tr>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td>Total Cost </td>
                        <td>'.$final_amount.'</td>
                    </tr>
                </table>





    ';
    $from = $from_mail;
    //$headers = "From:" . $from;

    $headers = "From:" . $from . "\r\n" .
               "Reply-To:" . $from . "\r\n" .
               "X-Mailer: PHP/" . phpversion();
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";        


    mail($to,$subject,$message,$headers);

    //$template->main_content = $template->fetch(TEMPLATE_DIR . 'messag_sent_to_friend.html');      
}

Но я получаю сообщение об ошибке Parse error: syntax error, unexpected T_FOREACH in C:\wamp\www\eshop\class\base\user.base.class.php on line 1025.Что не так я делаю?Или я не могу использовать foreach там.Пожалуйста, помогите

Ответы [ 3 ]

2 голосов
/ 04 февраля 2012

Вы не можете вложить оператор foreach в конкатенацию строк.Просто разделите его:

    ....
                    <th>Amount</th>
                </tr>';

    foreach $items_info as $a=>$v){
        $message .= '<tr>
                    <td>'.++$ind.'</td>        
                    <td>'.$v->brand.','.$v->model.'</td>
                    <td>'.$v->quantity.'</td>
                    <td>'.$v->price.'</td>
                    <td>'.$v->total_cost.'</td>
                </tr>';
    }
    $message .= '<tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
    ....
1 голос
/ 04 февраля 2012
foreach ($items_info as $a=>$v){

 $message .= ' <tr> <td>........
0 голосов
/ 04 февраля 2012
function mail_invoice($buyer_info,$items_info ,$date,$final_amount)

{global $ template;

//var_dump($buyer_info);


$to = $buyer_info->email;
$from_mail = 'info@7sisters.in';
//echo $msg.$to.$from;sender_mail
$subject = "Your Invoice";
$message = "Your Shopping Details";
$message .= '
        <h2>RETAIL INVOICE</h2>
            <p>
                SRI SAI VENTURES PVT LTD.<br />
                House Number 13A<br />
                Nizarapar<br />
                Guwahati - 781003<br />
                Assam
            </p>

            <p>
                Buyer <br />
                <b>'.$buyer_info->fname.' '.$buyer_info->lname.'</b><br />
                '.$buyer_info->address.'<br />
                PIN - '.$buyer_info->pin.'<br />
                PHONE '.$buyer_info->phone.'<br />
            </p>

            <p>
                Dispatch Date : '.$date.'
            </p>
            <table>
                <tr>
                    <th>Sl No</th>
                    <th>Description of goods</th>
                    <th>Quantity</th>
                    <th>Rate</th>
                    <th>Amount</th>
                </tr>'; 

            foreach ($items_info as $v){
                $message .= '<tr>
                    <td>'.++$ind.'</td>
                    <td>'.$v->brand.','.$v->model.'</td>
                    <td>'.$v->quantity.'</td>
                    <td>'.$v->price.'</td>
                    <td>'.$v->total_cost.'</td>
                </tr>';
            }
                $message .= '<tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>Total Cost </td>
                    <td>'.$final_amount.'</td>
                </tr>
            </table>';
$from = $from_mail;
//$headers = "From:" . $from;

$headers = "From:" . $from . "\r\n" .
           "Reply-To:" . $from . "\r\n" .
           "X-Mailer: PHP/" . phpversion();
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";        


mail($to,$subject,$message,$headers);

//$template->main_content = $template->fetch(TEMPLATE_DIR . 'messag_sent_to_friend.html');      

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...