Просмотр полной версии : Помочь с формой
Здравствуйте, помогите кто-та сделать input в котором будет указана сумма
при выборе товара который есть в span например
<span id='1'>Товар 1 - 500 руб</span>
<span id='2'>Товар 2 - 1500 руб</span>
<span id='3'>Товар 3 - 2500 руб</span>
<span id='4'>Товар 4 - 3500 руб</span>
и надо значение поставить в
<input>
и надо значение поставить в
<input>
Зачем?
ну цены поставить надо, в input чтоб дальше человек оплатил нужную сумму
ну цены поставить надо, в input чтоб дальше человек оплатил нужную сумму
Кто должен сообщать серверу цену товара и соответственно сумму к оплате - клиент или данные имеющиеся на сервере?
Серверу нужен идентификатор выбранного товара и его количество, а цены, если даже их пришлет клиент, сервер должен игнорировать. В противном случае это не магазин. Посчитать цену на клиенте, это значит сервис для клиента, а поля формы для отображения подобной информации совсем не требуется.
данные которые есть в инпуте просто подставлялись и всё, и выводились человеку в зависимости на какую кнопку он клацнул
данные которые есть в инпуте просто подставлялись и всё
Ну так вопрос в том, какие данные? Если id='4' - это идентификатор товара, то все гут. Но почему бы в таком случае не сделать так (если выбрать можно только штучно):
<form>
<label><input name="good[]" type="checkbox" value="1" data-price="500"> Товар 1 - 500 руб</label>
<label><input name="good[]" type="checkbox" value="2" data-price="1500"> Товар 2 - 1500 руб</label>
....
</form>
и пользователь сразу будет видеть выбор свой, а каждый выбор, это получить выбранные флажки формы и сложить их значения data-price, и отобразить где-то клиенту?
можно и так, доделаешь до конца? в input нужно вывести сумму
в input нужно вывести сумму
Еще раз - зачем? :)
сумма которая попадет в инпут я дальше её в базу передаю, по базе потом проверяю кто заказал и на какую сумму
сумма которая попадет в инпут я дальше её в базу передаю
Тогда еще раз - сервер ну просто обязан игнорировать цены, которые ему подсовывает клиент!
У вас база, товары описаны в ней, цены описаны в базе, а получить цену товара, это означает сделать запрос в базу по идентификатору товара и получить его цену.
Если вы разрешаете мне как клиенту определять цену, то я разве дурной? Почему бы мне не прислать серверу форму где будет не 500, а 5 руб.? Разве так можно поступать?
Хотя, если не думать, то можно. :) Уже есть прецедент, когда "мелким почерком" в договоре не банк дописал, надеясь на то, что клиент не обратит на это внимание, а наоборот это сделал клиент, а банк прошляпил. И если бы не мировое решение, то банк бы поплатился такой оплошностью.
Вы думаете, что если и вы так торговать будете, то я не смогу "нагреть" вас? :)
просто в дальнейшем будет подключатся оплата, и если он будет менять в форме сумму, то если меньше оплатить за тот же товар я проверю это
просто в дальнейшем будет подключатся оплата, и если он будет менять в форме сумму
Клиент просто физически не сможет изменить сумму, если цену, как это и положено, определяет сервер. Клиент может только изменить товары в корзине.
Пусть у вас в таблице goods товары:
id - идентификатор товара, name - его наименование, price - цена товара.
Вы выводите на страницу форму так как я описал в примере. Выбранные товары, их идентификаторы, будут переданы серверу как массив, пусть POST['good'].
if($goods = array_diff(array_map('intval', $_POST['good']), [0])) {
//массив не пуст, опустим проверку наличия таковых товаров в базе, хотя это нужно делать
//пишем полученные gid товаров в таблицу заказов orders, привязывая их к oid заказа покупателя
//если заказчик может редактировать свой выбор, то выбранное им определяется этой таблицей
}
Показать же сумму набранную по товарам (для простоты опускаем именование товаров, тем более мне не известно, что вообще делается у вас на сервере), это
$sql = 'SELECT SUM(price) total FROM goods WHERE id IN(SELECT gid FROM orders WHERE oid='.$order.')';
:cray: ну сделайте что я прошу, пожалуйста
Определить цену клиентом и отправить ее серверу?
Это не сложно, в плане кода, но я такого показывать не стану, так делать нельзя, и такое даже обсуждаться не должно.
Пусть вам такое показывает тот, кому пофиг - просят, да пожалуйста. )
И так на странице есть 4 товара которые отображены в <span></span>
есть сумма которую должен заплатить человек(эту сумму он выбирает сам)
то есть в input форме он вставляет например 1500
и далее нажимает отправить, я фильтрую эту сумму проверяю со всеми возможными и т.д
но на сайте есть товары у которых фиксированная цена например 100, 500 и 1500 рублей
нужно чтоб при выборе нужного товара, сумма просто автоматически вставилась в input поле, без введния её пользователям... Больше ничего не нужна, только чтоб с span кнопки сумма прописывалась в input, и если вдруг он выберет другую span кнопку то цена менялась
То есть магазин с аукционом, тогда это все меняет. Но
на сайте есть товары у которых фиксированная цена например 100, 500 и 1500 рублей
и вашему магазину либо сказочно повезло, либо будет баг. Как происходит аукцион - "Лот №, название/характеристики", а затем принимаются ставки. Вы же упорно просите прислать цену.
Вопрос - каким образом вы будете знать, что присланная клиентом цена в 700 руб, это цена за товар с ценой 500, и не 1500 руб.?
По идее, в таком случае, на странице не может быть отображено 4 товара, а только один, с предлагаемой ценой или диапазоном цен 100 - 1500 и с возможностью указания и своей цены. Но даже в этом случае серверу должна передаваться информация id=>price. Иначе как можно понять это - "на странице есть 4 товара ... есть сумма которую должен заплатить человек(эту сумму он выбирает сам)"? Эта сумма за что, за несуществующий на странице пятый товар?
я фильтрую эту сумму проверяю со всеми возможными и т.д
Это полная ахинея, если только не иметь уникальных цен или не торговать четырьмя товарами.
warren buffet
11.10.2016, 06:15
Типичный галлюциногенный топик "Гуляют там животные невиданной красы..."
porezon, все начинается с бизнес-логики.
почему аукцион? мне не нужно никаких готовых цен, всё работает по типу копилки, любой кидает любую сумму, ну чтоб руками её не писать, выбирает по кнопке нужную себе сумму
любой кидает любую сумму, ну чтоб руками её не писать, выбирает по кнопке нужную себе сумму
Ну так что есть span с ценами - предложение цены за один товар или цены нескольких товаров, ибо вот что вы писали при выборе товара который есть в span например?
Я уже говорил, что получить цену и по ней определять на сервере, что это такое, это полная профанация. К чему, к какому товару будет привязываться своя цена? Вы ничего не поясняете, пишите такое, что просто ахтунг.
Теперь же, следуя по тексту, можно предположить, что речь о предложениях на один товар. Тогда:
<style>
#add {
display: none
}
</style>
<script>
function getPrice(o) {
var i = document.getElementById('add');
if(!o.value) {
i.name = o.name;
i.style.display = 'inline'
} else {
i.name = '';
i.style.display = 'none'
}
}
</script>
<form>
<select name="good[12]" onchange="getPrice(this)">
<option value="100">100 руб.</option>
<option value="500">500 руб.</option>
<option value="1500">1500 руб.</option>
<option value="">Другая</option>
</select>
<input id="add" />
<button>GO</button>
</form>
Если будет выбрана своя цена, то сервер получит последнее значение массива - поля ввода, так как оно после списка, а имя получает такое же как и у списка. А 12, это идентификатор товара, а просто цена, это полный бред.
Всё разобрался, всем спасибо
текс текст текст
Отбой? :)
Всё разобрался, всем спасибо
Не понятно что там за lprice было и из чего появляется, как в общем и весь код конечно "ни к рогатому", но форматирование в денюжки, это гораздо проще:
string_number.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ')
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot