Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
 
konst2018
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 1
1

Отправка почты на yii2

09.10.2018, 10:24. Просмотров 115. Ответов 1
Метки нет (Все метки)

Добрый день . Делаю магазин на yii2. Не могу отправить данные из кнопки input в письмо через swiftmailer. Сама отправка почты работает нормально. А вот хочу из input вставить в письмо в поределённое место не получается помогите плиз.
Вот основные тексты:
Кликните здесь для просмотра всего текста

CartController.php :
PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
public function actionView(){
$session = Yii::$app->session;
$session->open();
$this->setMeta('Корзина');
$order = new Order();
if( $order->load(Yii::$app->request->post()) ){
$order->qty = $session['cart.qty'];
$order->sum = $session['cart.sum'];
 
if($order->save()){
$this->saveOrderItems($session['cart'], $order->id);
Yii::$app->session->setFlash('success', 'Ваш заказ принят. Менеджер вскоре свяжется с Вами.');
Yii::$app->mailer->compose('order', ['session' => $session])
->setFrom(['spirin.costia@yandex.ru'])
->setTo($order->email)
->setSubject('Заказ')
->setTextBody('Текст сообщения')
->send();
$email = $oder->email;echo"$email";
Yii::$app->mailer->compose('order', ['session' => $session])
->setFrom(['spirin.costia@yandex.ru'])
->setTo('spirin.costia@yandex.ru')
->setSubject('Заказ')
->send();
 
 
$session->remove('cart');
$session->remove('cart.qty');
$session->remove('cart.sum');
return $this->refresh();
}else{
Yii::$app->session->setFlash('error', 'Ошибка оформления заказа');
}
}
return $this->render('view', compact('session', 'order',['order' => $order]));
}
в папке mail - order.php:
PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
use yii\helpers\Html;
?>
 
<div class="table-responsive">
<table style="width: 100%; border: 1px solid #ddd; border-collapse: collapse;">
<thead>
<tr style="background: #f9f9f9;">
<th style="padding: 8px; border: 1px solid #ddd;">Наименование</th>
<th style="padding: 8px; border: 1px solid #ddd;">Кол-во</th>
<th style="padding: 8px; border: 1px solid #ddd;">Цена</th>
<th style="padding: 8px; border: 1px solid #ddd;">Сумма</th>
</tr>
</thead>
<tbody>
<?php foreach($session['cart'] as $id => $item):?>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $item['name']?></td>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $item['qty']?></td>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $item['price']?></td>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $item['qty'] * $item['price']?></td>
</tr>
<?php endforeach?>
<tr>
<td colspan="3" style="padding: 8px; border: 1px solid #ddd;">Итого: </td>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $session['cart.qty']?></td>
</tr>
<tr>
<td colspan="3" style="padding: 8px; border: 1px solid #ddd;">На сумму: </td>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $session['cart.sum']?></td>
</tr>
</tbody>
 
<thead>
<tr style="background: #f9f9f9;">
<th style="padding: 8px; border: 1px solid #ddd;">Телефон</th>
<th style="padding: 8px; border: 1px solid #ddd;">Емаил</th>
 
</tr>
</thead>
<tbody>
 
<?php
 
 
//if ($order->load(Yii::$app->request->post()) && $order->validate()) {
// выполнение кода, если данные введены правильно
// иначе будет показа ошибка (Yii выводит ошибки автоматически)
// $email=$order->email; // используется вместо $_POST['name']
 
 
//}
 
 
 
?>
 
 
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $order->email?></td>
<td style="padding: 8px; border: 1px solid #ddd;"><?php echo"$email"; ?></td>
 
</tr>
<?php //endforeach?>
 
</tbody>
 
 
 
 
 
 
</table>
</div>
в папке views/cart/view.php:
PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
?>
<div class="container">
 
<?php
 
$email = $oder->email;echo"$email";
if (isset($order->addres)) {
$email = $order->addres;
echo"$email";
 
} else {
$Err.="Ошибка передачи данных с поля id!<br>";
 
echo"ошибка";
 
};
?>
 
<?php if( Yii::$app->session->hasFlash('success') ): ?>
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<?php echo Yii::$app->session->getFlash('success'); ?>
</div>
<?php endif;?>
 
<?php if( Yii::$app->session->hasFlash('error') ): ?>
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<?php echo Yii::$app->session->getFlash('error'); ?>
</div>
<?php endif;?>
<?php if(!empty($session['cart'])): ?>
<div class="table-responsive">
<table class="table table-hover table-striped">
<thead>
<tr>
<th>Фото</th>
<th>Наименование</th>
<th>Кол-во</th>
<th>Цена</th>
<th>Сумма</th>
<th><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></th>
</tr>
</thead>
<tbody>
<?php foreach($session['cart'] as $id => $item):?>
<tr>
<td><?= \yii\helpers\Html::img("@web/images/products/{$item['img']}", ['alt' => $item['name'], 'height' => 50]) ?></td>
<td><a href="<?= Url::to(['product/view', 'id' => $id])?>"><?= $item['name']?></a></td>
<td><?= $item['qty']?></td>
<td><?= $item['price']?></td>
<td><?= $item['qty'] * $item['price']?></td>
<td><span data-id="<?= $id?>" class="glyphicon glyphicon-remove text-danger del-item" aria-hidden="true"></span></td>
</tr>
<?php endforeach?>
<tr>
<td colspan="5">Итого: </td>
<td><?= $session['cart.qty']?></td>
</tr>
<tr>
<td colspan="5">На сумму: </td>
<td><?= $session['cart.sum']?></td>
</tr>
</tbody>
</table>
</div>
<hr/>
<?php
 
 
$form = ActiveForm::begin([
'id' => 'login-form',
'options' => ['class' => 'form-horizontal'],
]) ?>
<?= $form->field($order, 'name')?>
<?= $form->field($order, 'email') ?>
<?= $form->field($order, 'phone')?>
<?= $form->field($order, 'address')?>
<?= Html::submitButton('Заказать', ['class' => 'btn btn-success'])?>
<?php ActiveForm::end()?>
<?php else: ?>
<h3>Корзина пуста</h3>
<?php endif;?>
</div>

Тоесть код передачи данных из кнопки input в письмо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2018, 10:24
Ответы с готовыми решениями:

Повторная отправка почты Yii2
Коллеги, приветствую! Ситуация следующая: Yii2. На какое-то время swiftmailer был переключен на...

Ошибка при установке Yii2-user with Yii2 advanced template
https://github.com/dektrium/yii2-user/blob/master/docs/usage-with-advanced-template.md ...

Простой многостраничный сайт на Yii2 без БД, есть ли быстрый старт для новичка в Yii2?
Привет! Решил смастерить сайт на Yii2, прочел вчера вводный раздел документации - основа...

Yii2
public function getProducts1() { $time1 = self::$time1; $time2 =...

Yii2
Всем привет, нужна помощь с фреймворком. Вобщем, мне в качестве практики нужно запилить одну...

1
cmath
Модератор
2513 / 1736 / 151
Регистрация: 11.08.2012
Сообщений: 3,336
Завершенные тесты: 6
12.10.2018, 02:49 2

Не по теме:

Код ниже - не ответ, а оформленный более-менее по-человечески код ТС. konst2018, если хотите таки получать ответы, изучите справку по BB кодам. И научитесь ими, пожалуйста, пользоваться.



CartController:
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
 
class CartController extends Controller
{
    //...
 
    public function actionView()
    {
        $session = Yii::$app->session;
        $session->open();
 
        $this->setMeta('Корзина');
 
        $order = new Order();
 
        if ($order->load(Yii::$app->request->post())) {
            $order->qty = $session['cart.qty'];
            $order->sum = $session['cart.sum'];
             
            if ($order->save()) {
                $this->saveOrderItems($session['cart'], $order->id);
 
                Yii::$app->session->setFlash('success', 'Ваш заказ принят. Менеджер вскоре свяжется с Вами.');
                Yii::$app->mailer->compose('order', ['session' => $session])
                    ->setFrom(['spirin.costia@yandex.ru'])
                    ->setTo($order->email)
                    ->setSubject('Заказ')
                    ->setTextBody('Текст сообщения')
                    ->send();
 
                $email = $oder->email;
 
                echo "{$email}";
 
                Yii::$app->mailer->compose('order', ['session' => $session])
                    ->setFrom(['spirin.costia@yandex.ru'])
                    ->setTo('spirin.costia@yandex.ru')
                    ->setSubject('Заказ')
                    ->send();
                 
                 
                $session->remove('cart');
                $session->remove('cart.qty');
                $session->remove('cart.sum');
 
                return $this->refresh();
            } else{
                Yii::$app->session->setFlash('error', 'Ошибка оформления заказа');
            }
        }
 
        return $this->render('view', compact('session', 'order', ['order' => $order]));
    }
 
    //...
}


mail - order.php:

Кликните здесь для просмотра всего текста

PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
 
use yii\helpers\Html;
 
?>
 
<div class="table-responsive">
    <table style="width: 100%; border: 1px solid #ddd; border-collapse: collapse;">
        <thead>
            <tr style="background: #f9f9f9;">
                <th style="padding: 8px; border: 1px solid #ddd;">Наименование</th>
                <th style="padding: 8px; border: 1px solid #ddd;">Кол-во</th>
                <th style="padding: 8px; border: 1px solid #ddd;">Цена</th>
                <th style="padding: 8px; border: 1px solid #ddd;">Сумма</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach($session['cart'] as $id => $item): ?>
            <tr>
                <td style="padding: 8px; border: 1px solid #ddd;"><?= $item['name']?></td>
                <td style="padding: 8px; border: 1px solid #ddd;"><?= $item['qty']?></td>
                <td style="padding: 8px; border: 1px solid #ddd;"><?= $item['price']?></td>
                <td style="padding: 8px; border: 1px solid #ddd;"><?= $item['qty'] * $item['price']?></td>
            </tr>
            <?php endforeach?>
 
            <tr>
                <td colspan="3" style="padding: 8px; border: 1px solid #ddd;">Итого: </td>
                <td style="padding: 8px; border: 1px solid #ddd;"><?= $session['cart.qty']?></td>
            </tr>
            <tr>
                <td colspan="3" style="padding: 8px; border: 1px solid #ddd;">На сумму: </td>
                <td style="padding: 8px; border: 1px solid #ddd;"><?= $session['cart.sum']?></td>
            </tr>
        </tbody>
     
        <thead>
            <tr style="background: #f9f9f9;">
                <th style="padding: 8px; border: 1px solid #ddd;">Телефон</th>
                <th style="padding: 8px; border: 1px solid #ddd;">Емаил</th>
            </tr>
        </thead>
 
        <tbody>
     
        <?php
 
        //if ($order->load(Yii::$app->request->post()) && $order->validate()) {
        // выполнение кода, если данные введены правильно
        // иначе будет показа ошибка (Yii выводит ошибки автоматически)
        // $email=$order->email; // используется вместо $_POST['name']
        //}
 
        ?>
            <tr>
                <td style="padding: 8px; border: 1px solid #ddd;"><?= $order->email ?></td>
                <td style="padding: 8px; border: 1px solid #ddd;"><?php echo "$email"; ?></td>
            </tr>
        <?php //endforeach?>
         
        </tbody>
    </table>
</div>


views/cart/view.php:

Кликните здесь для просмотра всего текста

PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
 
use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
 
?>
 
<div class="container">
 
    <?php
     
    $email = $oder->email;
    echo "$email";
 
    if (isset($order->addres)) {
        $email = $order->addres;
        echo"$email";
    } else {
        $Err.="Ошибка передачи данных с поля id!<br>";
        echo"ошибка";
    };
 
    ?>
 
    <?php if (Yii::$app->session->hasFlash('success')): ?>
        <div class="alert alert-success alert-dismissible" role="alert">
            <button type="button"
                    class="close"
                    data-dismiss="alert"
                    aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
 
            <?= Yii::$app->session->getFlash('success') ?>
        </div>
    <?php endif;?>
     
    <?php if (Yii::$app->session->hasFlash('error')): ?>
        <div class="alert alert-danger alert-dismissible" role="alert">
            <button type="button"
                    class="close"
                    data-dismiss="alert"
                    aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
 
            <?= Yii::$app->session->getFlash('error'); ?>
        </div>
    <?php endif;?>
 
    <?php if (!empty($session['cart'])): ?>
        <div class="table-responsive">
            <table class="table table-hover table-striped">
                <thead>
                    <tr>
                        <th>Фото</th>
                        <th>Наименование</th>
                        <th>Кол-во</th>
                        <th>Цена</th>
                        <th>Сумма</th>
                        <th><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach($session['cart'] as $id => $item):?>
                        <tr>
                        <td><?= \yii\helpers\Html::img("@web/images/products/{$item['img']}", ['alt' => $item['name'], 'height' => 50]) ?></td>
                        <td><a href="<?= Url::to(['product/view', 'id' => $id])?>"><?= $item['name']?></a></td>
                        <td><?= $item['qty']?></td>
                        <td><?= $item['price']?></td>
                        <td><?= $item['qty'] * $item['price']?></td>
                        <td><span data-id="<?= $id?>" class="glyphicon glyphicon-remove text-danger del-item" aria-hidden="true"></span></td>
                        </tr>
                    <?php endforeach?>
 
                    <tr>
                        <td colspan="5">Итого: </td>
                        <td><?= $session['cart.qty']?></td>
                    </tr>
 
                    <tr>
                        <td colspan="5">На сумму: </td>
                        <td><?= $session['cart.sum']?></td>
                    </tr>
                </tbody>
            </table>
        </div>
        <hr/>
 
        <?php
 
        $form = ActiveForm::begin(['id' => 'login-form', 'options' => ['class' => 'form-horizontal']]);
 
        echo $form->field($order, 'name');
        echo $form->field($order, 'email');
        echo $form->field($order, 'phone');
        echo $form->field($order, 'address');
 
        echo Html::submitButton('Заказать', ['class' => 'btn btn-success']);
 
        ActiveForm::end();
 
        ?>
 
    <?php else: ?>
        <h3>Корзина пуста</h3>
    <?php endif;?>
</div>


Добавлено через 10 минут
Цитата Сообщение от konst2018 Посмотреть сообщение
Не могу отправить данные из кнопки input в письмо
Какие данные из какого еще input?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2018, 02:49

Yii2 ActiveForm
Здравствуйте. Сделал я админку для сайта позавчера, все работало - добавление, редактирование и...

DetailView - Yii2
Добрый день уважаемые, есть вот такой код: &lt;?= DetailView::widget(,]) ?&gt; Он выводит мне с базы...

Фотогаллерея на Yii2
Большая просьба! Подскажите, как создать фотогаллерею на Yii2. Стандартного виджета я не нашел....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru