Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/48: Рейтинг темы: голосов - 48, средняя оценка - 4.96
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376

Реализации корзины покупок

30.03.2012, 21:47. Показов 8873. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть csv с товарами. Сейчас вывожу его так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$f_arr = file( "canfood/canfood.csv" );
echo '<table border="1" width="100%">'; 
echo '<tr height="30">';
echo '<td  align="center"><strong>'."Наименование".'</strong></td>';
echo '<td align="center"><strong>'."Ед. изм.".'</strong></td>';
echo '<td align="center"><strong>'."Цена".'</strong></td>';
echo'</tr>';
for ($i = 0; $i < count($f_arr); $i++) {
$str = explode(";", $f_arr[$i]);
echo '<tr height="25">';
echo '<td>'.$str[0].'</td>';
echo '<td align="center">'.$str[1].'</td>';
echo '<td align="center">'.$str[2]."р.".'</td>';
echo'</tr>';
}
echo'</table>'; 
?>
То есть получаю таблицу с данными. Теперь вдруг стала задача реализации корзины. Ну я решил добавить столбец слева с кнопкой "В корзину". Так вот вопрос, как сделать чтобы по нажатию кнопки, записывались данные строки в сессию. Пока смог только выводить на экран значение строки.

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
<?php
$f_arr = file( "canfood/canfood.csv" );
echo '<table border="1" width="100%">'; 
echo '<tr height="30">';
echo '<td align="center"><strong>'."В корзину".'</strong></td>';
echo '<td  align="center"><strong>'."Наименование".'</strong></td>';
echo '<td align="center"><strong>'."Ед. изм.".'</strong></td>';
echo '<td align="center"><strong>'."Цена".'</strong></td>';
echo'</tr>';
for ($i = 0; $i < count($f_arr); $i++) {
$str = explode(";", $f_arr[$i]);
echo '<tr height="25">';
echo "<td align='center'>
<form>
<input type='submit' name='press' value='Купить' onClick='javascript:addItem(\"$str[0]\", \"$str[2]\")'>
</form>
</td>";
 
echo '<td>'.$str[0].'</td>';
echo '<td align="center">'.$str[1].'</td>';
echo '<td align="center">'.$str[2]."р.".'</td>';
echo'</tr>';
}
echo'</table>'; 
?>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
<script language="JavaScript">
function addItem(Name,Price) {
<?php 
session_start(); 
if (!isset($_SESSION['arr4']))
$_SESSION['arr4'] = array();
array_push($_SESSION['arr4'], "значение");
?>
alert(Name+Price);
}
</script>
При таком коде у меня выводится на экран моя строка и пишется в сессию "значение". Но ведь ява переменные в сессию писать нельзя. Как быть?

Или подскажите какие нибудь более человеческие способы реализации этого всего. А именно вывод товаров из csv и возможность добавления товара в сессию (корзину)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2012, 21:47
Ответы с готовыми решениями:

Создание корзины покупок
Привет, есть база данных в которой есть таблицы (категории товара) с товарами и ценами на них. Вопрос,как можно сделать что то подобное на...

Что-то типа корзины покупок
Пробую сделать в Access и пока не получается. Помогите. 1. Почему в окне VBA среди объектов нет подчиненной формы...

Реализация корзины покупок в datagridview
Здравствуйте. У меня такая проблема,имеется 2 формы в которых находятся два datagridview (в одном товары,другая пустая - корзина), при...

6
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
31.03.2012, 12:18
Serg046, php и JS не могут напрямую работать друг с другом! Вот это в корне неправильно:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
<script language="JavaScript">
function addItem(Name,Price) {
<?php 
session_start(); 
if (!isset($_SESSION['arr4']))
$_SESSION['arr4'] = array();
array_push($_SESSION['arr4'], "значение");
?>
alert(Name+Price);
}
</script>
Php и JS могут взаимодействовать только через Ajax. Сделать это несложно:
- Есть отличный JS фреймворк jQuery, в котором есть функция работы с Ajax. Скачать этот фреймворк можно с официального сайта http://jquery.com
После того, как скачаете, скопируйте файл в папку с сайтом и подключите его между тегами "<head></head>" вот так "<script type="text/javascript" src="путь/файл_jquery.js"></script>" на странице с этим кодом:
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
<?php
$f_arr = file( "canfood/canfood.csv" );
echo '<table border="1" width="100%">'; 
echo '<tr height="30">';
echo '<td align="center"><strong>'."В корзину".'</strong></td>';
echo '<td  align="center"><strong>'."Наименование".'</strong></td>';
echo '<td align="center"><strong>'."Ед. изм.".'</strong></td>';
echo '<td align="center"><strong>'."Цена".'</strong></td>';
echo'</tr>';
for ($i = 0; $i < count($f_arr); $i++) {
$str = explode(";", $f_arr[$i]);
echo '<tr height="25">';
echo "<td align='center'>
<form>
<input type='submit' name='press' value='Купить' onClick='javascript:addItem(\"$str[0]\", \"$str[2]\")'>
</form>
</td>";
 
echo '<td>'.$str[0].'</td>';
echo '<td align="center">'.$str[1].'</td>';
echo '<td align="center">'.$str[2]."р.".'</td>';
echo'</tr>';
}
echo'</table>'; 
?>
Затем вот эту функцию:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
<script language="JavaScript">
function addItem(Name,Price) {
<?php 
session_start(); 
if (!isset($_SESSION['arr4']))
$_SESSION['arr4'] = array();
array_push($_SESSION['arr4'], "значение");
?>
alert(Name+Price);
}
</script>
Измените вот на это:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
function addItem(Name,Price) 
{
    $.post
    (
        "korzina.php", {name: Name, price: Price}, onSuccess
    );
    
    function onSuccess(data)
    {
        alert("Товар успешно добавлен в корзину!");
    }
}
</script>
Затем создайте файл, например "korzina.php" с таким содержимым:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php 
    session_start(); 
    
    $name = $_POST['name'];
    $price = $_POST['price'];
    
    $insert = $name." ".$price;
    
    if (!isset($_SESSION['arr4']))
    {
        $_SESSION['arr4'] = array();
    }
    array_push($_SESSION['arr4'], $insert);
?>
Всё, корзина готова.
1
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
31.03.2012, 16:03  [ТС]
Огромное спасибо. Понемногу осваиваюсь..

Добавлено через 1 час 15 минут
Что-то не выходит..
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Лига продуктов - Чай, кофе</title>
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
<script type="text/javascript">
function addItem(Name,Price)
{
    $.post
    (
        "korzina.php", {name: Name, price: Price}, onSuccess
    );
   
    function onSuccess(data)
    {
        alert("Success");
    }
}
</script>
</head>
PHP
1
2
3
<form>
<input type='submit' name='press' value='Купить' onClick='javascript:addItem(\"$str[0]\", \"$str[2]\")'>
</form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    session_start();
   
    $name = $_POST['name'];
    $price = $_POST['price'];
   
    $insert = $name." ".$price;
   
    if (!isset($_SESSION['arr']))
    {
        $_SESSION['arr'] = array();
    }
    array_push($_SESSION['arr'], $insert);
?>
Не заходит в функцию даже, пишет консоль
addItem is not defined
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
31.03.2012, 16:14
В коде ниже была ошибка, на седьмой строке не был закрыт тег "</script>". Тут исправлено:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Лига продуктов - Чай, кофе</title>
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
function addItem(Name,Price)
{
    $.post
    (
        "korzina.php", {name: Name, price: Price}, onSuccess
    );
   
    function onSuccess(data)
    {
        alert("Success");
    }
}
</script>
</head>
1
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
31.03.2012, 21:06  [ТС]
Ага, какой же я дурак xD
Цитата Сообщение от Lyodik Посмотреть сообщение
function onSuccess(data)
че за data? Скрипт походу не входит в onSuccess, не выводит сообщение Success. А мне нужно чтобы код выполнялся какой нить после, ну я свой напишу вместо месаги.

Добавлено через 8 минут
Разобрался
"korzina.php", {name: Name, price: Price}, onSuccess;
';' не хватало..

Добавлено через 5 минут
А как побороть такое
Вот у меня к примеру адрес страницы /test.html, после нажатия кнопки он становится /test.html?press=Купить и если жмать другие кнопки, то все норм. Но стоит при таком состоянии обновить страницу, как кнопки ничего не делают. Чего делать? Может как то запретить в этом случае обновление страницы.
Причем ява код исправно выполняется.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
31.03.2012, 21:22
Цитата Сообщение от Serg046 Посмотреть сообщение
от у меня к примеру адрес страницы /test.html, после нажатия кнопки он становится /test.html?press=Купить и если жмать другие кнопки, то все норм. Но стоит при таком состоянии обновить страницу, как кнопки ничего не делают. Чего делать? Может как то запретить в этом случае обновление страницы.
Причем ява код исправно выполняется.
Что-то совсем не понятно что к чему. У вас страница после нажатия кнопки перезагружается?
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
01.04.2012, 00:02  [ТС]
Нет, я написал что происходит после нажатия кнопки, только подстановка в url и исполнение скрипта. Обновляю я страницу сам, кнопка в браузере или F5.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.04.2012, 00:02
Помогаю со студенческими работами здесь

Создание прайса с функцией корзины покупок
Всем привет. Итак, что имеем - Очень много Excel таблиц с товарами, суммарно более 15 000 строк, таблицы отсортированы, т.е товары не...

Объясните пожалуйста работу корзины покупок
Делаю корзину и не могу понять, что куда сохранять, и что передавать на сервер. Допустим я нажал по кнопке &quot;добавить в корзину&quot;...

Отделение интерфейса от реализации класса: компиляция кода реализации
Доброго времени суток, У меня возникла проблема с отделением интерфейса от реализации класса. Допустим, у меня есть три файла: 1....

Книга покупок
Добрый день, форумчане. Ответьте мне на таокй вопрос, пожалуйста: что должно попадать в книгу покупок в полу &quot;Оплата&quot;. Мои...

Список покупок
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt Вы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru