Отображение корзины в шапке сайта

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
zxc
Сообщения: 98
Зарегистрирован: 2017.03.13, 01:06

Отображение корзины в шапке сайта

Сообщение zxc »

Здравствуйте. Что я делаю не так? Хочу сделать отображение кол-во товара на его стоимость, а в итоге не выводит кол-во и сумму
Код контроллера:

Код: Выделить всё

public function actionCartInto()
	{
		$cartTotal = \app\models\Cart::find()->with('book')->where(['user_id'=>Yii::$app->user->identity->id,])->all();
		$countBooks = 0;
		$countTotal = 0;
		$sum = 0;
		foreach ($cartTotal as $cartItem)
		{
			$countBooks += 1;
			$countTotal += $cartItem->count;
			$sum += $cartItem->book->price * $cartItem->count;
		}
		header('Access-Control-Allow-Origin: *');
		\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
		header('Access-Control-Allow-Origin: *');
		\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
		return [
			'countBooks'=>$countBooks,
			'countTotal'=>$countTotal,
			'sum'=>$sum
		];
	}
Код шапки сайта:

Код: Выделить всё

<span id="cartInfo" style="display:inline;">В корзине <span id="cartBooksTotal"></span> книг на сумму <span id="cartSumTotal"></span> рублей</span>
Код js

Код: Выделить всё

function onAddToCart() 
{
	var bookID = $(this).attr("add-book-to-cart");
	$.ajax({
		url: "/cart/cart-add?ajax=1&book_id="+bookID,
	}).done(function(answer)
	{
		//window.alert("book added; \r\n books count = "+answer.countBooks+" \r\n totl count = "+answer.countTotal);
		window.alert("Книга "+bookID+" успешно добавлена в вашу корзину!");
		$("#cartBooksTotal").text(answer.countTotal);
		$("#cartSumTotal").text(answer.sum);
		$("#cartInfo").show();
	});
}
$("[add-book-to-cart]").click(onAddToCart);


// загружаем инфу о корзине
$.ajax({
	url: "/cart/cart-info?ajax=1",
}).done(function(answer){
	$("#cartBooksTotal").text(answer.countTotal);
	$("#cartSumTotal").text(answer.sum);
	$("#cartInfo").show();
});
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Отображение корзины в шапке сайта

Сообщение futbolim »

"Что я делаю не так?"
Вы не дебажите
zxc
Сообщения: 98
Зарегистрирован: 2017.03.13, 01:06

Re: Отображение корзины в шапке сайта

Сообщение zxc »

Ошибка ReferenceError: $ is not defined
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Отображение корзины в шапке сайта

Сообщение futbolim »

Ваши скрипты подключаются до подключения jQuery
zxc
Сообщения: 98
Зарегистрирован: 2017.03.13, 01:06

Re: Отображение корзины в шапке сайта

Сообщение zxc »

Спасибо, и как мне исправить это?
zxc
Сообщения: 98
Зарегистрирован: 2017.03.13, 01:06

Re: Отображение корзины в шапке сайта

Сообщение zxc »

Впервые подключаю скрипты в yii2
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Отображение корзины в шапке сайта

Сообщение futbolim »

Когда делаете что-то впервые, обращайтесь к документации. Вот ссылка: http://www.yiiframework.com/doc-2.0/gui ... ssets.html
Вынести js код в файл и подключить его с помощью бандла или просто через registerJsFile. Но так или иначе, этот файл должен зависеть от \yii\web\JqueryAsset
zxc
Сообщения: 98
Зарегистрирован: 2017.03.13, 01:06

Re: Отображение корзины в шапке сайта

Сообщение zxc »

Спасибо, разобрался
Закрыто