Ilusion
23.10.2013 - 21:22
Есть сессия $_SESSION['cart'] , которая содержит:
Array ( [2] => Array ( [color] => 5 [size] => 9 [count] => 1 ) )
Есть форма:
<b>Количество:</b></br>
<input type="text" name="tovar['.$res['id'].']" size="2" value="">
И есть обработчик формы:
if(isset($_POST['tovar'])){
foreach($_POST['tovar'] as $key=>$value){
$_SESSION['cart'][$key]=$value;
}
}
Не получается изменить колличество count в сессии, что не так у меня с обработчиком?
Игорь_Vasinsky
23.10.2013 - 21:24
только после перезагрузки страницы ты увидишь новые значения.
после отработки POST сделай редирект на себя - за одно очиститься и POST
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Ilusion
23.10.2013 - 21:39
Вроде работает, но почему-то вместе с ним меняются другие значения сессии, color и size
Игорь_Vasinsky
23.10.2013 - 21:56
Цитата |
$_SESSION['cart'][$key]=$value; |
ты пробегаешься по всем ключам массива, а хотел только по count
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Ilusion
23.10.2013 - 22:10
$_SESSION['cart'][$key]=$value['count'];
тоже самое..
Игорь_Vasinsky
23.10.2013 - 22:32
тебе ключ count нужен в сессии - а ты где его меняешь?)
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Ilusion
23.10.2013 - 22:35
if(isset($_POST['tovar'])){
foreach($_POST['tovar'] as $key=>$value['count']){
$_SESSION['cart'][$key]=$value;
}
}
так работает, но color и size вообще пропадают :blink:
exotica
24.10.2013 - 05:34
тебе необходимо изменить count дак и обращаться надо к count соответственно:
$_SESSION['cart']['count']=$value;
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Ilusion
24.10.2013 - 06:08
все равно с ошибками выводит.. Я думаю что нужно добавить
$_SESSION['cart'][$id]['count']=$value;
id-шник товара количество которого мы изменяем.. Только где его взять?
Игорь_Vasinsky
24.10.2013 - 07:27
блин, ну мы то откуда знаем структуры твоих массивов???
глянь на стрктуру
echo '<pre>' . print_r($_SESSION,1) . '</pre>';
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Ilusion
24.10.2013 - 07:32
хм,
Array
(
[kod] => 25562
[cart] => Array
(
[2] => Array
(
[color] => 6
[size] => 9
[count] => 1
)
[count] => 4
)
)
Работает, но выдает ошибку
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
на запрос
$listIds = array_keys($_SESSION['cart']);
$sql = "SELECT * FROM `tovar` WHERE `id` IN (".implode(',', $listIds).")";
exotica
24.10.2013 - 19:32
Цитата |
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in |
Ошибка от функции:
mysqli_fetch_assoc() а ниже следующий код даже не содержит этой функции, тут кризис экстрасенсов так что придумать некому что дальше творится.
По массиву SESSION, там два count :)
значение первого:
$_SESSION['cart']['count']Array
(
[kod] => 25562
[cart] => Array
(
[2] => Array
(
[color] => 6
[size] => 9
[count] => 1
)
[count] => 4
)
)
значение второго:
$_SESSION['cart']['2']['count']Array
(
[kod] => 25562
[cart] => Array
(
[2] => Array
(
[color] => 6
[size] => 9
[count] => 1
)
[count] => 4
)
)
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Цитата (Игорь_Vasinsky @ 23.10.2013 - 17:24) |
только после перезагрузки страницы ты увидишь новые значения. |
Кто сказал таких глупостей?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Ilusion
24.10.2013 - 21:50
Вот весь код:
$listIds = array_keys($_SESSION['cart']);
$sql = "SELECT * FROM `tovar` WHERE `id` IN (".implode(',', $listIds).")";
$result=$mysqli->query($sql);
while($res = mysqli_fetch_assoc($result)) {
...
}
если я правильно понял, то и должно быть два count, так как в корзине может быть несколько товаров..
Ilusion
25.10.2013 - 10:45
Все равно ничего не выходит.. Кто-то сможет помочь?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.