Добрый день.
Такая проблема, разбираюсь с написанием интернет-магазина, на MVC.
Есть у меня контроллер заказа.
<?php
class Application_Controllers_Order extends Lib_BaseController
{
function __construct()
{
$this->dislpay_form = true; // показывать форму ввода данных
if(isset($_REQUEST["to_order"])){ // если пришли данные с формы
$model = new Application_Models_Order; //создаем модель заказа
$error=$model->isValidData($_REQUEST); //проверяем на корректность вода
if($error)$this->error=$error; // если есть ошиби заносим их в переменную
else{
//если ошибок нет, то добавляем заказ в БД
$order_id=$model->addOrder();
/*$date=$model->getData($order_id);
while ($row = mysql_fetch_assoc($date))
{
$date_our = date('d.m.Y', $row['date']);
if (trim($date_our) == "18.11.2018") $this->flag = "1";//???????
}*/
$model1=new Application_Models_Coupon;
$summ_coupon=$model1->calcSummCoupon($order_id);
$this->summ_coupon= $summ_coupon; // записываем сумму купона в переменную, чтобы вывесим ее во view
Lib_SmalCart::getInstance()->setCartData();// пересчитываем маленькую корзину
header('Location: /order?thanks='.$order_id);
exit;
}
}
if(isset($_REQUEST["thanks"])){
//формируем сообщение
$this->message="Ваша заявка <strong>№ ".$_REQUEST["thanks"]."</strong> принята.";
$this->dislpay_form = false;// форму ввода данных больше не покзываем
}
}
}
Проблема возникла с записью суммы купона в переменную, $this->summ_coupon= $summ_coupon; . В этой строке по идее полученное значение из метода вычисления суммы купона(это значение действительно приходит из метода, оно не пустое и вычисляется правильно) записываем в переменную. По аналогии с if($error)$this->error=$error;, message и display_form .
И потом значения этих переменных выводим в представлении заказа
<h1>Оформление заказа</h1>
<a href="/cart"><<< Назад в корзину</a>
<br/>
<?if($error){ echo $error;}?><br/>
<?
if($dislpay_form){?>
<form action="" method="post">
<table class="table_order_form">
<?if($_SESSION["Auth"]) {?>
<tr bgcolor="#F2F2F2"><td>Ф.И.О.</td><td><input type="text" name="fio" value="<?=$_SESSION["userName"]?>"/></td></tr>
<tr bgcolor="lightgray"><td>E-mail<span style="color: red;">*</span></td><td><input type="text" name="email" value="<?=$_SESSION["User"]?>"/></td></tr>
<?}
else{?>
<tr bgcolor="#F2F2F2"><td>Ф.И.О.</td><td><input type="text" name="fio" value="<?=$_REQUEST['fio']?>"/></td></tr>
<tr bgcolor="lightgray"><td>E-mail<span style="color: red;">*</span></td><td><input type="text" name="email" value="<?=$_REQUEST['email']?>"/></td></tr>
<?}?>
<tr bgcolor="#F2F2F2"><td>Телефон</td><td><input type="text" name="phone" value="<?=$_REQUEST['phone']?>"/></td></tr>
<tr bgcolor="lightgray"><td>Адрес</td><td><textarea name="adres"><?=$_REQUEST['adres']?></textarea></td></tr>
</table>
<br/>
<h2>Выбирете способ доставки</h2>
<p>Доставка по Москве и МО</p>
<input type="radio" name="delivery_method" value="11"/> Доставка курьером нашего магазина <br/>
<p>Самовывоз из пункта выдачи</p>
<input type="radio" name="pickup_point" value="1"/> Самовывоз 1 <br/>
<input type="radio" name="pickup_point" value="2"/> Самовывоз 2<br/>
<input type="radio" name="pickup_point" value="3"/> Самовывоз 3<br/>
<input type="radio" name="pickup_point" value="4"/> Самовывоз 4<br/>
<input type="radio" name="pickup_point" value="5"/> Самовывоз 5<br/>
<h2>Выбирете способ оплаты</h2>
<input type="radio" name="payment_method" value="cash"/>Наличные<br/>
<input type="radio" name="payment_method" value="card"/> Банковская карта<br/>
<input type="radio" name="payment_method" value="electr_pay"/> Электронный кошелек<br/>
<input type="submit" name="to_order" value="Оформить заказ">
</form>
<?
}
else{ echo $message;
echo $summ_coupon;};
?>
Но все значения выводятся, а $summ_coupon - нет. Хотя вроде бы все аналогично, не понимаю в чем проблема?
Заранее спасибо.