Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 14.03.2015, 15:20   #1
Новичок
 
Регистрация: 02.12.2011
Сообщений: 38
Вес репутации: 153
ZazulaJ скоро станет известенZazulaJ скоро станет известен
По умолчанию не заносятся id в SESSION

Всем добрый день! Делаю покупательскую корзину для интернет-магазина.
Вроде все верно, но почему-то не заносятся id товара в массив SESSION. Подскажите, в чем может быть причина.
Вот код:
PHP код:
<span class="buy" onclick="add_to_cart('.$product['id'].')">Купить</span></div>'; 
функция add_to_cart
Код HTML:
function add_to_cart(product_id) {
	$.post( "cart/backend/add_to_cart.php", {product_id: product_id}, update_cart); 
	alert('Товар добавлен в корзину');
}
файл add_to_cart.php
PHP код:
session_start();
include_once 
$_SERVER['DOCUMENT_ROOT'].'/cart/cart.php';
add_to_cart($_POST['product_id']); 
и файл cart.php
PHP код:
include_once $_SERVER['DOCUMENT_ROOT'].'/mysqli.php';
/**
* параметры:
* $product_id – идентификатор товара
* $count – количество добавляемого товара, по умолчанию 1, 
*/
function add_to_cart($product_id$count=1) {
    
//проверяем, не был ли добавлен товар в корзину ранее:
    
if (!empty($_SESSION['products'][$product_id])) {
        
//увеличиваем количество на единицу, если товар уже добавлен:
        
$_SESSION['products'][$product_id]['count']++;
    }
    else {
        
//создаем пустой массив, на всякий случай, можно и без него.
        
$_SESSION['products'][$product_id]=array();
        
//извлекаем цену товара из базы данных:
        
$q=mysqli_query($mysqli,"SELECT price FROM products WHERE id=".$product_id);
        
//разбиваем результат запроса в массив:
        
$add_product=mysqli_fetch_assoc($q);
        
//можно и так, если не умеем работать с объектами:
        //$add_product=mysql_fetch_assoc(mysql_query($q));
        //добавляем товар в корзину:
        
$_SESSION['products'][$product_id]['coast']=$add_product['price'];
        
$_SESSION['products'][$product_id]['count']=$count;
    }
    
/*
    вызываем функции для подсчета стоимости корзины и количества товаров.
    здесь я опять внесу изменение, будем считать не количество товаров в корзине,
    а количество самих товаров, т.е. если в корзине 5 единиц товара 1, и 2 – товара 2, 
    то товаров в корзине – 2, а не 7.
    И еще один момент, лучше всего объединить в одну функцию подсчет суммы     корзины и количества товаров в ней: update_cart()
    */
    
update_cart();

ZazulaJ вне форума   Ответить с цитированием
Старый 15.03.2015, 21:23   #2
телочка на авке клевая?
 
Аватар для 10012003
 
Регистрация: 14.09.2008
Адрес: Замкадье.
Сообщений: 1,522
Вес репутации: 262
10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее
По умолчанию

<span class="buy" onclick="add_to_cart(<?php=$product['id']?>)">Купить</span></div>;

function add_to_cart(product_id) {
$.post( "cart/backend/add_to_cart.php", {'product_id': product_id}, update_cart);
alert('Товар добавлен в корзину');
}
У Вас
первый код наверно все же html, ибо не увидел я переменных
второй js
если я все правильно понял

Добавлено через 6 минут
файл cart.php

а где session_start():
???

Последний раз редактировалось 10012003; 15.03.2015 в 21:23. Причина: Добавлено сообщение
10012003 вне форума   Ответить с цитированием
Старый 17.03.2015, 20:37   #3
Новичок
 
Регистрация: 02.12.2011
Сообщений: 38
Вес репутации: 153
ZazulaJ скоро станет известенZazulaJ скоро станет известен
По умолчанию

session_start в индексе, там же и все товары со ссылками купить. Просто не стала все файлы выкладывать, как и полностью js. Там кажется проблема с путями, переместила файл cart и товар стал добавляться в корзину. Спасибо за ответ!
ZazulaJ вне форума   Ответить с цитированием
Старый 17.03.2015, 22:30   #4
Эксперт
 
Аватар для Anadonam
 
Регистрация: 29.10.2009
Адрес: Вологда and SSHA
Сообщений: 3,897
Вес репутации: 353
Anadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущее
Отправить сообщение для Anadonam с помощью ICQ
По умолчанию

ужасть ..............
Anadonam вне форума   Ответить с цитированием
Старый 17.03.2015, 23:30   #5
Дикий
 
Аватар для D.iK.iJ
 
Регистрация: 02.06.2007
Адрес: <Noindex>
Сообщений: 2,551
Вес репутации: 355
D.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущееD.iK.iJ - прекрасное будущее
По умолчанию

Честно, меня пугает такое программирование
D.iK.iJ вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sape, session ID, PHPBB3 и индексация intermaster Вопросы от новичков 1 10.06.2009 15:47


Часовой пояс GMT +3, время: 00:26.