Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Циклический вывод в mail

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Nizz
Отправлено: 21 Августа, 2017 - 17:08:02
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Доброго времени суток ув. форумчане. Я совсем запутался и не могу понять как осуществить вывод цикла в mail. Цикл корректно работает вне mail и выводит все данные, а на почту приходит только последние значения из цикла. Помогите пожалуйста
PHP:
скопировать код в буфер обмена
  1.  
  2. if ($_POST['enter']) {
  3.    
  4.  
  5. /* получатели */
  6.  
  7. $to= "<я.com>" . ", " ;
  8.  
  9.  
  10. /* тема/subject */
  11. $subject = "Получен новый заказ";
  12.  
  13. /* сообщение */
  14. function name_mail ($products){
  15.   foreach ($products as $name) {
  16.     return "<li>$name[name]</li>";
  17.   }
  18. }
  19. function articl_mail ($products){
  20.   foreach ($products as $articl) {
  21.     return "<li>$articl[articl]</li>";
  22.   }
  23. }
  24. function price_mail ($products){
  25.   foreach ($products as $price) {
  26.     return "<li>$price[price]</li>";
  27.   }
  28. }
  29. $message = '
  30. <html>
  31. <head>
  32. <title>Новый заказ от клиента - '.$NameUser.'!</title>
  33. </head>
  34. <body>
  35. <p>Новый заказ от клиента - '.$NameUser.', контактный телефон для связи '.$TelephoneUser.'</p>
  36. <p>Оплата будет осуществлена '.chanceOplate($_POST['chanse']).'</p>
  37. <table border="4">
  38.  <tr>
  39.    
  40.    <th>Артикул</th>
  41.    <th>Название товара</th>
  42.    <th>Цена</th>
  43.    <th>Кол-во</th>
  44.    
  45.  </tr>
  46.  <tr>
  47.    
  48.    <td>'.articl_mail ($products).'</td>
  49.    <td>'.name_mail ($products).'</td>
  50.    <td>'.price_mail ($products).'</td>
  51.    <td>'.CountItemMail($products).'</td>
  52.    
  53.  </tr>
  54.  <tr>
  55.   Общая сумма заказа '.$totalPrice.' Руб.
  56.  </tr>
  57.  
  58. </table>
  59. </body>
  60. </html>
  61. ';
  62.  
  63.  
  64. /* Для отправки HTML-почты вы можете установить шапку Content-type. */
  65. $headers= "MIME-Version: 1.0\r\n";
  66. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  67.  
  68. /* дополнительные шапки */
  69. $headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
  70. $headers .= "Cc: birthdayarchive@example.com\r\n";
  71. $headers .= "Bcc: birthdaycheck@example.com\r\n";
  72.  
  73. /* и теперь отправим из */
  74. mail($to, $subject, $message, $headers);
  75.   MessageSend(3, 'Ваш заказ успешно отправлен', '/home');
  76. }
  77.  
 
 Top
Строитель Модератор
Отправлено: 21 Августа, 2017 - 19:14:50
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Nizz, а какой результат вы пытаетесь получить?

На счёт return - эта конструкция завершает выполнение скрипта в текущей области видимости. Её можно сравнить с конструкцией exit -- отличие только в том, что exit прерывает работу всего скрипта целиком.

Ваш цикл в теле функции можно записать так
Спойлер (Отобразить)
 
 Top
Nizz
Отправлено: 22 Августа, 2017 - 09:26:26
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Строитель спасибо за отзывчивость. $products - многомерный массив содержащий информацию о продукте.
PHP:
скопировать код в буфер обмена
  1.  
  2. Array ( [0] => Array ( [id] => 326 [name] => Hotlex Водонагреватель (бойлер) 10л. [namecate] => boiler [articl] => JV-10 [price] => 5600 [namephoto] => 14 ) )
  3.  

Сложность в том, что в письме на почту не попадают все элементы массива, а только последние. Если я использую конструкцию на сайте
PHP:
скопировать код в буфер обмена
  1.  
  2. function price_mail ($products){
  3.   foreach ($products as $price) {
  4.     return "<li>$price[price]</li>";
  5.   }
  6. }
  7.  

То мне отображает все элементы массива.
(Добавление)
Строитель Огромное спасибо, вы действительно оказались правы, нужно было использовать join(). Спасибо !
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB