Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.04.2015, 20:03
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение

Хранение данных в сессии никак не оправдывает substr(number_format($produc t['price'] * $quantity ,2), 0, 10), это глупость, ибо в контексте типа данных с которыми вы работаете, этого совсем не требуется, тем более htmlspecialchars и trim.

Об остальном тоже хорошо подумайте. Вы изначально поступаете непотребным способом, и ваш код грешит тем, что может огрести кучу мусора, и скушать его.
Ну так что думать то, если я не представляю, как можно из JS id="product-price" сделать PHP $tprice?????????

A number_format нужен для числовых выражений, и substr ограничиваю количество символов (хотя это нужно для ввода в форме)
Ответить с цитированием
  #12 (permalink)  
Старый 06.04.2015, 20:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

У вас общая концепция ни к черту не годиться, а вы решаете проблему как из чего-то вытащить.

Если речь о price, то значит либо товары, либо услуги. Значит в сессии должна храниться корзина выбранных клиентом товаров/улуг.

Выбор клиента, это отправка на сервер идентификатора товара/услуги и количество выбранного.

Товар/услуга добавляется в корзину только в том случае, если запрос в базу возвращает цену товара/услуги для указанного идентификатора.

Хранить в сессии общее количество выбранных товаров/услуг и их общую сумму вообще не требуется, это можно быстро просчитать функциями РНР.

number_format нужен только при выводе на страницу.

Отправка почтой, это уже оформление заказа, а не реакция на выбор каждого товара/услуги на странице.

В этой теме речь идет о корзине, нечто похожее должно быть и у вас.
Ответить с цитированием
  #13 (permalink)  
Старый 06.04.2015, 20:42
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение

В этой теме речь идет о корзине, нечто похожее должно быть и у вас.
Почему концепция не годится? Пока не появился выбор типа доставки с использованием JS - всё отлично работало. Теперь полный тупик.....

И корзина с добавлением у меня совсем по другому работает.

А можно из value достать значение в переменную php не используя JS???
<input type="radio" name="nameRadio" value="300" > Наш курьер
А то с ним полная засада получается...
Ответить с цитированием
  #14 (permalink)  
Старый 06.04.2015, 20:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Почему концепция не годится?

Потому, что, если цену товара определяет не сервер, а клиент, то ваша концепция, это котел для сбора мусора.
Ответить с цитированием
  #15 (permalink)  
Старый 06.04.2015, 20:47
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение
если цену товара определяет не сервер, а клиент, то ваша концепция, это котел для сбора мусора.
Цена товара, как все параметры товара, достаётся из БД sql-запросом SELECT
Ответить с цитированием
  #16 (permalink)  
Старый 06.04.2015, 20:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

То есть $produc t['price'] - это значение выборки? Тогда нормально, но почему при выборе каждого товара вы производите расчет количества?
Выбор это добавление в корзину, и считать нужно то, что в корзине. Добавлять же в нее вы можете как угодно, хоть руками записывать, а вот просчитать, так для этого есть готовые функции.

<input type="radio" name="nameRadio" value="300" >

При отправке формы на сервере будет получено в массиве GET/POST как 'nameRadio' => 300. Что тут вытаскивать да еще средствами JS я не понимаю.
Ответить с цитированием
  #17 (permalink)  
Старый 06.04.2015, 21:04
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение
а вот просчитать, так для этого есть готовые функции.

<input type="radio" name="nameRadio" value="300" >

При отправке формы на сервере будет получено в массиве GET/POST как 'nameRadio' => 300. Что тут вытаскивать да еще средствами JS я не понимаю.
Про готовые функции ничего не слышал.....

Средствами JS я вытаскиваю значение value для показа "общей суммы заказа" в <output></output> без перезагрузки страницы с учётом стоимости доставки.

И у меня на этой же странице order.php собирается и отправляется mail(), куда я хочу "засунуть" значение id='product-price' с учётом стоимости доставки, а не старую $total_price, где доставка не учитывается.
Ответить с цитированием
  #18 (permalink)  
Старый 06.04.2015, 21:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Про готовые функции ничего не слышал.....

А вы читали по ссылке? Если товары в корзине, это массив, ключами которого являются идентификаторы товаров, а его значениями массив, где первый элемент, это количество товара, а второй его цена, то:

$total_cnt = array_sum(array_map('current', $array_name)); //количество товаров в корзине
$total_sum = array_sum(array_map('array_product', $array_name)); //сумма товаров в корзине


Зачем вам брать на клиенте какую-то стоимость с чем-то или без чего-то, если в это с успехом можете высчитать на сервере, ведь на нем у вас все данные о корзине есть?
Ответить с цитированием
  #19 (permalink)  
Старый 06.04.2015, 21:18
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение
Про готовые функции ничего не слышал.....

$total_cnt = array_sum(array_map('current', $array_name)); //количество товаров в корзине
$total_sum = array_sum(array_map('array_product', $array_name)); //сумма товаров в корзине


Зачем вам брать на клиенте какую-то стоимость с чем-то или без чего-то, если в это с успехом можете высчитать на сервере, ведь на нем у вас все данные о корзине есть?
С вышеприведённом кодом вообще ничего не понял. У меня даже намёка на такой скрипт нету.

И у меня в корзине собрана вся информация о продукте или продуктах, но там нет стоимости доставки. Её я выбираю уже на странице order.php и здесь нужно внести изменения в "общую стоимость заказа".
Ответить с цитированием
  #20 (permalink)  
Старый 06.04.2015, 21:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если вы не поняли, значит вы не знаете РНР, тут увы я вам не помогу. Если вы считаете количество товаров в корзине и их суму как проходом в цикле, значит структура вашей корзине неудачна.

Просчитать с учетом доставки, значит получить от клиента не ее стоимость, а параметры ее определяющие (ну не клиент же ее определяет), а уж сервер должен по этим параметрам высчитать стоимость доставки, добавив ее к стоимости заказа (суммы товаров в корзине). Клиенту вы должны возвращать эту рассчитанную сервером стоимость. Как вы ее выбираете на странице order.php, что на ней делается я не знаю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как из js передать параметр в html wins Общие вопросы Javascript 6 22.12.2013 15:56
Передать значение из html в js Mateus jQuery 3 24.12.2012 18:58
Как передать значение в php Mateus jQuery 11 10.12.2012 18:23
Как передавать параметры из php скрипта в js imissyouso Общие вопросы Javascript 3 01.08.2012 18:24
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 08:19