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

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

16.02.2009, 15:05. Показов 8148. Ответов 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
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru