[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вывести?
Ilusion
Есть сессия $_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
только после перезагрузки страницы ты увидишь новые значения.

после отработки 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
Вроде работает, но почему-то вместе с ним меняются другие значения сессии, color и size
Игорь_Vasinsky
Цитата
$_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
$_SESSION['cart'][$key]=$value['count'];

тоже самое..
Игорь_Vasinsky
тебе ключ 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
if(isset($_POST['tovar'])){
foreach($_POST['tovar'] as $key=>$value['count']){
$_SESSION['cart'][$key]=$value;
}
}


так работает, но color и size вообще пропадают :blink:
exotica
тебе необходимо изменить count дак и обращаться надо к count соответственно:
$_SESSION['cart']['count']=$value;


_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Ilusion
все равно с ошибками выводит.. Я думаю что нужно добавить
$_SESSION['cart'][$id]['count']=$value;


id-шник товара количество которого мы изменяем.. Только где его взять?
Игорь_Vasinsky
блин, ну мы то откуда знаем структуры твоих массивов???


глянь на стрктуру
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
хм,
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
Цитата
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]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
twin
Цитата (Игорь_Vasinsky @ 23.10.2013 - 17:24)
только после перезагрузки страницы ты увидишь новые значения.

Кто сказал таких глупостей?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ilusion
Вот весь код:
$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
Все равно ничего не выходит.. Кто-то сможет помочь?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.