Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/38: Рейтинг темы: голосов - 38, средняя оценка - 4.97
Solali

Интернет-магазин (как "добавить предмет в корзину")

16.02.2009, 15:05. Показов 8188. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задали у уневере задачу, суть которой в следующем: при нажатии на названии продукта (ссылка), вылазит новое окно, в котором, помимо прочего, есть кнопка "добавить в корзину". Корзина находится в главном окне в виде таблицы, куда должно помещаться название и кол-во продукта (по количеству кликов мышкой).
Собственно, застряла я на том, как должна выглядеть функция, вызываемая на клик по кнопке.
В методичке есть св-во opener, которое каким-то образом вписывает информацию в родительское окно из дочернего, но вот как заставить это свойство вписывать ее в определенное место документа, не указано.
Заранее благодарна хоть за какие-нибудь разъяснения.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.02.2009, 15:05
Ответы с готовыми решениями:

Как добавить предмет в корзину?
Как добавить предмет в корзину? К примеру я тут накидал что-то.. int count1 = Convert.ToInt32(Console.ReadLine()); trash t = new...

Wordpress, woocommerce интернет-магазин. Кнопки подробнее, в корзину. Всплывающий заголовок товара
На первой странице, та что Главная, есть товары. В зависимости от количества надписей(цена со скидкой, когда нет в наличии, а также от...

Как добавить большое количество товаров в интернет магазин
Всем привет!Нужно добавить порядка 5000 товаров в интернет магазин.Как быстрее это сделать?есть какой нибудь способ автоматизировать это...

10
0 / 0 / 0
Регистрация: 01.03.2009
Сообщений: 10
01.03.2009, 22:17
Да меня этот вопрос тоже очень интересует! Ну я смотрю ответов 0. Вы продвинулись хоть как то в этом вопросе?
0
 Аватар для Ceran
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
01.03.2009, 22:37
Честно - говоря подобного рода действия имеют малое отношение к реальности... Собственно потому и ответов нет.
0
0 / 0 / 0
Регистрация: 01.03.2009
Сообщений: 10
01.03.2009, 22:54
Тогда пожалуйста приблизьте это по возможности к реальности! Вот например у меня из таблиц MySQL данные переданы в тело WEB один из которых картинка с корзинкой (добавить в карзину) и с сылкой (эта сылка должна направить определенные данные из БД на страницу мая карзина. При открытии которой они там все появились с отмечеными голочками. И кнопка типа дальше пошли. Теперь перед нами форма соглашения с некоторыми окошками для заполнения. И вот самое интересное. Это все мне должно придти на мыло. OO kak! Это сложно?
0
 Аватар для Ceran
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
01.03.2009, 23:33
Не-а... Такое можно заделать на AJAX'е... Чтоб всё работало без перезагрузки страницы. Можно даже всё на одной сделать.
А реальность в данном случае с моей точки зрения выглядела бы так:
1. есть страница с загруженными данными. Допустим, это каталог книг книжного магазина. Описание, автор, цена и т.д каждой из книг содержится в базе данных. При первой загрузке выводятся только последние, например, 10 или 5, отсортированные по тому или иному признаку (дата добавления, автор, издательство и т.д.) соответственно по возрастанию или по убыванию. Остальные книги доступны после перехода по ссылкам постраничной навигации.
При выводе собираем данные из базы (включая ID каждой книги).
Возле описания каждой книги есть ссылка "Добавить в корзину".
Ссылка выглядит следующим образом:
HTML5
1
<span title="Добавить в корзину" onclick="add(1)">Добавить в корзину</span>
где по клику вызывается функция add с параметром, который соответствует ID книги в базе данных.
2. Как это может работать.
Создаём экземпляр объекта xmlHttpRequest
C помощью созданного объекта выполняем асинхронный запрос к серверу, передавая ему в качестве параметра id выбранной книги. Сервер находит эту книгу в базе и возвращает её описание (или что там нужно). Далее формируем виртуальный XML-файл или данные в виде XML (как нравится) и возвращаем клиенту (браузеру).
3. Наш XML принимает JsvsScript - файл, который отправлял запрос, парсит пришедшие XML-данные и обновляет корзину. В итоге мы видим, что при щелчке по названию книги, она добавилась в корзину. Ну а дальше по той же схеме можно удалять из корзины, полностью её чистить или продолжать оформлять заказ выбранных книг.
Вот так просто в 3 действия это всё и можно сделать.
0
0 / 0 / 0
Регистрация: 01.03.2009
Сообщений: 10
02.03.2009, 00:07
Ну да.... Очень супер!!! Я сейчас еще один раз прочитаю, а то даже не знаю с чего начать спрашивать дальше.

Добавлено через 21 минуту 44 секунды
Так... Первый пункт мне понятен. Да я сделал цикл. И цикл и раскрытая тема у меня в одной таблице. ОК! ID автоматом выставляется при добавлении или удалении каталога тем самым .... в общем понятно. Ну вот второй пункт я не понял что за экземпляр? Я так понимаю мы должны сделать отдельный файл где в рабочей области PHP вытащит из таблици по ID те данные которые нам нужны. Вот здесь че то я совсем... Я не профи. Но предположим это я потом сделаю и подключу. На первых порах, а это уже поджимает мне нужна форма для заполнения данных. Я исхитрился и из скрипта http://www.wr-script.ru/all.php callmeback сделал форму которая меня более или менее удовлетворяет. Но вот проблема!Мне удается добавить только одно окошко с выпадающим меню остальные добавляются но инфа которую заполняешь не записывается на мыло. Помощь нужна други
0
 Аватар для Ceran
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
02.03.2009, 13:26
Я чё-то не пойму, как это так? Если есть форма, которая отправляет данные, то как они могут не отправиться или не записаться? Ты просто видимо что-то упускаешь. Одним словом - скрипт в студию... Разберёмся.
0
0 / 0 / 0
Регистрация: 01.03.2009
Сообщений: 10
02.03.2009, 16:47
C удальствием!
Я вложил php файл

Добавлено через 2 минуты 50 секунд
Неполучилось

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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<? // WR-CalMeBack v 1.1  //  16.10.08 г.  //  [email]Miha-ingener@yandex.ru[/email]
 
error_reporting (E_ALL);
 
 
// --------------------------- конфигурирование -------------------------- //
 
$adminemail="info@vassilissa.ee";  // емайл админа - кому отсылать
$date=date("d.m.Y"); // число.месяц.год
$time=date("H:i:s"); // часы:минуты:секунды
$backurl="callmeback.html";  // На какую страничку переходит после отправки письма
$back="<html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><meta http-equiv='Content-Language' content='ru'></head><body><center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строка
// ---------------------------------------------------------------------- //
 
function replacer ($text) { // ФУНКЦИЯ очистки кода
$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&amp;',$text); // закоментируйте эту строку если вы используете языки: Украинский, Татарский, Башкирский и т.д.
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace(""",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace('   ',' ',$text);
return $text; }
 
 
if (isset($_POST['name'])) {
 
if (isset($_POST['ph1'])) {$ph1=$_POST['ph1'];} else {$ph1="";} // Код страны
if (isset($_POST['ph2'])) {$ph2=$_POST['ph2'];} else {$ph2="";} // Код города
 
 
 
if ((!ctype_digit($ph1)) or (strlen($ph1)>10)) {exit("<B>$back. Номер телефона может содержать только цифры</B>");}
if ((!ctype_digit($ph2)) or (strlen($ph2)>15)) {exit("<B>$back. Номер телефона может содержать только цифры</B>");}
 
 
 
if (isset($_POST['timer'])) {$timer=$_POST['timer'];} else {$timer="";} // Желаемое время звонка
if ($timer=="") {exit("<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>. Вы не указали желаемое время звонка.");}
 
if (isset($_POST['name'])) {$name=$_POST['name'];} else {$name="";} // Имя контактного лица
if (isset($_POST['subj'])) {$subj=$_POST['subj'];} else {$subj="";} // Тема звонка
if (isset($_POST['print'])) {$print=$_POST['print'];} else {$print="";} // Новая B_control
if (isset($_POST['synk'])) {$synk=$_POST['synk'];} else {$synk="";} // Новая C_control
if (isset($_POST['info'])) {$info=$_POST['info'];} else {$info="";} // Дополнительная информация
 
if (strlen($name)<1 or strlen($name)>40) {exit("<B>$back. Вы не ввели имя, или ввели слишком длинное имя</B>");}
if (strlen($subj)<0 or strlen($subj)>40) {exit("<B>$back. Вы не указали тему звонка или ввели слишком длинную тему</B>");}
if (strlen($print)<0 or strlen($print)>40) {exit("<B>$back. Вы не указали тему звонка или ввели слишком длинную тему</B>");} // Новая B_control
if (strlen($synk)<0 or strlen($synk)>40) {exit("<B>$back. Вы не указали тему звонка или ввели слишком длинную тему</B>");} // Новая C_control
if (strlen($info)<1 or strlen($info)>1000) {exit("<B>$back. Вы не указали дополнительную информацию, или ввели слишком много доп. информации</B>");}
 
$name=str_replace("|","|",$name);
$subj=str_replace("|","|",$subj);
$print=str_replace("|","|",$print); // Новая B_control
$synk=str_replace("|","|",$synk); // Новая C_control
$info=str_replace("|","|",$info);
$timer=str_replace("|","|",$timer);
$text="$name|$subj|$info|$timer|$print|$synk|"; //Здесь дописываем 
$text=replacer($text); $ex=explode("|",$text); 
$name=$ex[0]; $subj=$ex[1]; $info=$ex[2]; $timer=$ex[3]; $print=$ex[4]; $synk=$ex[5]; //Здесь дописываем 
 
// отправка админу сообщения
$headers=null; // Настройки для отправки писем
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From: Администратор <".$adminemail.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
 
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$cmburl="http://$host$self";
$cmburl=str_replace("callmeback.php", "$backurl", $cmburl);
 
// Собираем всю информацию в теле письма
$allmsg="<html><head><meta http-equiv='Content-Type' content='text/html; charset='></head>
<body><BR><BR><center>
<table width=600><tr><td height='25' bgcolor='#71B8FF' align=center>
<font color=white>Klient tahab <B>tema helistab!</B></font></td></tr></table><br>
 
<table border=0 cellpadding=0 cellspacing=0 width=600 bgcolor=#71B8FF><tr><td width=964>
<table border=0 cellpadding=3 cellspacing=1 width='100%'>
 
<tr bgcolor='#D9ECFF' height=24><td width=30%>Nimi contactit</td><td width=70%>$name</td></tr>
<tr bgcolor='#FFFFFF'><td>Telefoninumber</td><td>
 
<table border=0 cellpadding=0 cellspacing=0><TR><TD>Cod</TD><TD>Linn</TD><TD>Number</TD><TD>add</TD></TR>
<TR align=center><TD><B>$ph1</B></TD><TD><B>$ph2</B></TD><TD><B>$ph3</B></TD></TR></TABLE>
</td></tr>
 
<tr bgcolor='#D9ECFF' height=24><td>Helistage mulle:</td><td><B>$timer</B></td></tr>
<tr bgcolor='#FFFFFF' height=24><td>A_control</td><td>$subj</td></tr>
<tr bgcolor='#FFFFFF' height=24><td>B_control</td><td>$print</td></tr> 
<tr bgcolor='#FFFFFF' height=24><td>C_control</td><td>$synk</td></tr>
<tr bgcolor='#D9ECFF' height=24><td>info</td><td>$info</td></tr>
<tr bgcolor='#FFFFFF' height=24><td>Date:</td><td>$time - $date</td></tr>
 
</table></td></tr></table><br>
 
<table width=600><tr><td height=25 bgcolor='#71B8FF' align='center'>
<a href='$cmburl'><font color='white'>from is.adiart: $cmburl</font></a></td></tr></table>
<BR><BR><BR>
* Selle kiri genereritud $cmburl. Otta ei saa.
</body></html>";
 
// Отправляем письмо майлеру на съедение если разрешена отправка ;-)
mail("$adminemail", "$date $time Zakaz ot obratnogo zvonka "$name"", $allmsg, $headers);
 
print "<script language='Javascript'><!--
function reload() {location = "$backurl"}; setTimeout('reload()', 2000);
//--></script>
$allmsg <BR><BR>"; exit;
 
}
else {exit;}
 
?>
0
0 / 0 / 0
Регистрация: 01.03.2009
Сообщений: 10
02.03.2009, 16:55
Да вот он!!!
Если нужно я выложу HTML файл.
Но вряд ли он нужен. Там все ясно.
Вот форма которая приходит на мыло
Миниатюры
Интернет-магазин (как "добавить предмет в корзину")  
0
0 / 0 / 0
Регистрация: 01.03.2009
Сообщений: 10
02.03.2009, 21:53
А вот так выглядит сама форма.
Из оного видно что там где [А] должно быть [А] где [В] там [В] и так дальше.
Ноо!!
[С] появилось в [В] и я не могу понять где ошибка.


Добавлено через 4 минуты 37 секунд
Вот она.

Добавлено через 3 минуты 48 секунд
что то не вложить мне его

Добавлено через 4 часа 39 минут 36 секунд
Спасибо всем.
Я разобрался.
0
 Аватар для Ceran
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
02.03.2009, 23:08
То есть уже отвечать не нужно? А чё ты скрипт-то такой сложный нашёл? Столько заморочек, особенно в плане безопасности. Хотя ладно, дело вкуса...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.03.2009, 23:08
Помогаю со студенческими работами здесь

Нужен скрипт который проверяет правильно ли игрок закинул предмет в корзину
Кто-нибудь помогите пожалуйста написать скрипт. Вообщем, в игре 3 корзины и 3 типа предметов и задача игрока распределять предметы по...

Как сделать корзину в интернет магазине?
Добрый вечер! Разработал интернет магазин на пхп, все отлично, но встала необходимость сделать добавление товара в корзину без...

Как лучше хранить корзину в интернет-магазине?
Добрый день. Как считаете, как лучше хранить корзину в интернет-магазине? Лично мне в голову пришло три варианта: 1. В БД. Плюсы: не...

Как добавить корзину магазина?
как добавить корзину магазина чтобы ты когда нажимал на кнопку добавить в корзину,выскакивало окно с этой корзиной подскажите пожалуйста

Как добавить товар в корзину
import list_of_functions basket = { 'products': , 'all prices': 0, }


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru