Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как добавить кол-во товаров в массив session для корзины? / 10 сообщений из 10, страница 1 из 1
27.11.2012, 13:32:33
    #38054718
Vavan_k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Добрый день. Уважаемые.
Подскажите пожалуйста, что не правильно? почему количество из POST не записывается в массив корзины? код ниже...
Заранее благодарю.

Код: 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.
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.
<?php
$del=$_POST[del];
$delete=$_POST[delete];
$del_all=$_POST[del_all];
$add=$_POST[add];

$name = trim($_POST[name]);
$l_name = trim($_POST[l_name]);
$city=trim($_POST[city]);
$mail = trim($_POST[mail]);
$phone=trim($_POST[phone]);
$confirm=$_POST[confirm];

if (isset($confirm)){ // если нажата подтвердить то запишим в базу данных заказ который создали

$ids = array_keys($_SESSION[CART]);// Обновляем количество товара в корзине

foreach( $ids as $id ){
                $_SESSION[CART][$id][quantity] = $_POST[quantity_.$key];
		}
$cart_str=serialize($_SESSION[CART]); // сохраняем масив в разложенном виде чтб потом его высветить
$date=time();
 $add_cart=mysql_query("INSERT INTO cart(name,l_name,city,phone,mail,orders,date)VALUE ('$name','$l_name','$city','$phone','$mail','$cart_str','$date')"); // обращаемся к таблице в базе и записываем юзера   
		         if (!$add_cart){
	                print "Ошибка при записи";
	             } else{
	                 print "Заказ принят <a href='index.php'> Вернутсья на главную </a>";
					 unset($_SESSION[CART]); // удаляем из корзины все
					 
				 }
} else{

if(isset($add)){
print"
<form method='POST' action=''>
Имя<br>
<input type='text' name='name' class='pole1' value='$name?'><br> 
Фамилия<br>
<input type='text' name='l_name' class='pole1' value='$s_name'><br> 
Город<br>
<input type='text' name='city' class='pole1' value='$city'><br> 
Телефон<br>
<input type='text' name='phone' class='pole1' value='$phone'><br> 
Майл<br>
<input type='text' name='mail' class='pole1' value='$mail'<br> 
<input type='submit' name='confirm' value='Подтвердить'>
</form>"; // создаем форму для подтверждения заказа в корзине.
}else{
if(isset($delete)){
$count=count($_SESSION[CART]); // считает сколько товаров добавленно в массиве сесии карзины.
if($count < 1){
 print"Не выбрали ничего для удаления";
 }else{
   foreach($del as $key=>$val){
   unset($_SESSION[CART][$val]); // удаляем из корзины 
   }
}}
if(isset($del_all)){
      unset($_SESSION[CART]); // удаляем из корзины все
   }
$count=count($_SESSION[CART]); // считает сколько товаров добавленно в массиве сесии карзины.
if($count < 1){
   print "Нет товаров";
}else{
    print"<form method='POST' action=''>"; // создаем удаление из карзины с помощью форм ПОСТА
    print "<b>В Вашей корзине<br></b><hr>";
    foreach($_SESSION[CART] as $key=>$val ){
	$prod = mysql_query("SELECT * FROM products WHERE id='$val'");
	$prod_arr = mysql_fetch_array($prod);
	$summa=$summa+$prod_arr[price];
	print "<div class='cart-list-block'><input type='checkbox' name='del[]' value='$val'>
	<div class='cart-list'>
	  <img src='$prod_arr[img]' width=50 height=50>
	   <span class='cart-list-text'><font class='text-cart' >Цена :</font>
	   <font class='pr-cart'>$prod_arr[price]$</font>
	   <input type='text' value='1' name='quantity_".$key."' style='background-color:#333333;color:white' size='3' />
	   <font class='text-cart'>$prod_arr[title]</font></span>
       </div></div><hr>"; // выводим ЧЕКБОКС вместе с товаром и ценой
	}
	Print "<b>Итого :$summa $</b>";
	print "<hr>
	    <input type='submit' name='delete' value='Удалить из корзины'> 
		<input type='submit' name='del_all' value='Удалить все'> 
		<input type='submit' name='add' value='Подтвердить заказ'> 
	    </form>";
}
}
}
?>

...
Рейтинг: 0 / 0
27.11.2012, 13:35:06
    #38054724
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
1. выделайте код тегом src
2. $_POST[quantity_.$key] вы тут ничего не забыли (как и в остальном коде?) . Подсказка, quantity_ сомневаюсь что это константа
код топикстартера
Код: 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.
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.
<?php
$del=$_POST[del];
$delete=$_POST[delete];
$del_all=$_POST[del_all];
$add=$_POST[add];

$name = trim($_POST[name]);
$l_name = trim($_POST[l_name]);
$city=trim($_POST[city]);
$mail = trim($_POST[mail]);
$phone=trim($_POST[phone]);
$confirm=$_POST[confirm];

if (isset($confirm)){ // если нажата подтвердить то запишим в базу данных заказ который создали

$ids = array_keys($_SESSION[CART]);// Обновляем количество товара в корзине

foreach( $ids as $id ){
 $_SESSION[CART][$id][quantity] = $_POST[quantity_.$key];
 }
$cart_str=serialize($_SESSION[CART]); // сохраняем масив в разложенном виде чтб потом его высветить
$date=time();
 $add_cart=mysql_query("INSERT INTO cart(name,l_name,city,phone,mail,orders,date)VALUE ('$name','$l_name','$city','$phone','$mail','$cart_str','$date')"); // обращаемся к таблице в базе и записываем юзера 
 if (!$add_cart){
 print "Ошибка при записи";
 } else{
 print "Заказ принят <a href='index.php'> Вернутсья на главную </a>";
 unset($_SESSION[CART]); // удаляем из корзины все

 }
} else{

if(isset($add)){
print"
<form method='POST' action=''>
Имя<br>
<input type='text' name='name' class='pole1' value='$name?'><br> 
Фамилия<br>
<input type='text' name='l_name' class='pole1' value='$s_name'><br> 
Город<br>
<input type='text' name='city' class='pole1' value='$city'><br> 
Телефон<br>
<input type='text' name='phone' class='pole1' value='$phone'><br> 
Майл<br>
<input type='text' name='mail' class='pole1' value='$mail'<br> 
<input type='submit' name='confirm' value='Подтвердить'>
</form>"; // создаем форму для подтверждения заказа в корзине.
}else{
if(isset($delete)){
$count=count($_SESSION[CART]); // считает сколько товаров добавленно в массиве сесии карзины.
if($count < 1){
 print"Не выбрали ничего для удаления";
 }else{
 foreach($del as $key=>$val){
 unset($_SESSION[CART][$val]); // удаляем из корзины 
 }
}}
if(isset($del_all)){
 unset($_SESSION[CART]); // удаляем из корзины все
 }
$count=count($_SESSION[CART]); // считает сколько товаров добавленно в массиве сесии карзины.
if($count < 1){
 print "Нет товаров";
}else{
 print"<form method='POST' action=''>"; // создаем удаление из карзины с помощью форм ПОСТА
 print "<b>В Вашей корзине<br></b><hr>";
 foreach($_SESSION[CART] as $key=>$val ){
 $prod = mysql_query("SELECT * FROM products WHERE id='$val'");
 $prod_arr = mysql_fetch_array($prod);
 $summa=$summa+$prod_arr[price];
 print "<div class='cart-list-block'><input type='checkbox' name='del[]' value='$val'>
 <div class='cart-list'>
 <img src='$prod_arr[img]' width=50 height=50>
 <span class='cart-list-text'><font class='text-cart' >Цена :</font>
 <font class='pr-cart'>$prod_arr[price]$</font>
 <input type='text' value='1' name='quantity_".$key."' style='background-color:#333333;color:white' size='3' />
 <font class='text-cart'>$prod_arr[title]</font></span>
 </div></div><hr>"; // выводим ЧЕКБОКС вместе с товаром и ценой
 }
 Print "<b>Итого :$summa $</b>";
 print "<hr>
 <input type='submit' name='delete' value='Удалить из корзины'> 
 <input type='submit' name='del_all' value='Удалить все'> 
 <input type='submit' name='add' value='Подтвердить заказ'> 
 </form>";
}
}
}
?>

...
Рейтинг: 0 / 0
27.11.2012, 13:36:45
    #38054726
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
3. Подсказка номер три: что есть переменая $key в коде:
Код: php
1.
2.
3.
 foreach( $ids as $id ){
 $_SESSION[CART][$id][quantity] = $_POST[quantity_.$key];
 }
...
Рейтинг: 0 / 0
27.11.2012, 13:55:01
    #38054761
Vavan_k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Ренат,

$key получаю тут
Код: php
1.
2.
3.
4.
 
foreach($_SESSION[CART] as $key=>$val 
далее с помощью формы вводим количество, где quantity_(номер товара) = количеству 
<input type='text' value='1' name='quantity_".$key."' style='background-color:#333333;color:white' size='3' />
...
Рейтинг: 0 / 0
27.11.2012, 15:22:40
    #38054948
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Vavan_k,

мы с вами о разных фореачах говарим?
...
Рейтинг: 0 / 0
27.11.2012, 16:48:42
    #38055179
Vavan_k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Ренат,
добрый вечер.
да мы говорим о 2х разных форечарах один сверху который идет после нажатия кнопки ПОДТВЕРДИТЬ ЗАКАЗ, а второй снизу, где на основании данного условия выводится массив с товаром и где вводиться количество. Если Вам не сложно просмотрите весь код, он работает полностью,без ввода количества. Мне очень нужна помощь я застрял на этом моменте и 2й день пытаюсь исправить но все тщетно. Пожалуйста.
...
Рейтинг: 0 / 0
27.11.2012, 18:40:59
    #38055391
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Vavan_k,

еще раз повторю:
у вас тут неивзестная переменная $key
замените код:
Код: php
1.
2.
3.
foreach( $ids as $id ){
 $_SESSION[CART][$id][quantity] = $_POST[quantity_.$key];
 }


на
Код: php
1.
2.
3.
foreach( $ids as $id ){
 $_SESSION['CART'][$id]['quantity'] = $_POST['quantity_' . $id];
 }
...
Рейтинг: 0 / 0
28.11.2012, 10:14:50
    #38055862
Vavan_k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Ренат,
Добрый день, Вы правы изначально в коде я ставил id но ничего так и не происходило, и после я указал key,в надежде на то что он будет получать те данные которые были внесены нижею
...
Рейтинг: 0 / 0
28.11.2012, 13:40:04
    #38056258
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Vavan_k,

1.
Код: php
1.
<input type='text' value='".$val['quantity']."' name='quantity_".$key."' style='background-color:#333333;color:white' size='3' />


2. вы обрамили индексы в кавычки? Или это у вас аткие константы?
3.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
 $add_cart=mysql_query("INSERT INTO cart(name,l_name,city,phone,mail,orders,date)VALUE ('$name','$l_name','$city','$phone','$mail','$cart_str','$date')"); // обращаемся к таблице в базе и записываем юзера 
 if (!$add_cart){
 print "Ошибка при записи";
 } else{
 print "Заказ принят <a href='index.php'> Вернутсья на главную </a>";
 unset($_SESSION[CART]); // удаляем из корзины все

 }



замените на
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$query = "INSERT INTO cart(name,l_name,city,phone,mail,orders,date)VALUE ('$name','$l_name','$city','$phone','$mail','$cart_str','$date')";
print $query;
 $add_cart=mysql_query($query); // обращаемся к таблице в базе и записываем юзера 
$error = mysql_error();
 if ($error){
 print "Ошибка при записи: " . $error;
 } else{
 print "Заказ принят <a href='index.php'> Вернутсья на главную </a>";
 unset($_SESSION[CART]); // удаляем из корзины все

 }


и скажиет что выведет
...
Рейтинг: 0 / 0
28.11.2012, 14:13:45
    #38056330
Vavan_k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить кол-во товаров в массив session для корзины?
Ренат,
Добрый день.
изменил,но совсем перестал записывать массив в базу, не товар не кол-во.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как добавить кол-во товаров в массив session для корзины? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]