Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помочь с формой (https://javascript.ru/forum/misc/65293-pomoch-s-formojj.html)

porezon 10.10.2016 21:43

просто в дальнейшем будет подключатся оплата, и если он будет менять в форме сумму, то если меньше оплатить за тот же товар я проверю это

laimas 10.10.2016 22:06

Цитата:

Сообщение от porezon
просто в дальнейшем будет подключатся оплата, и если он будет менять в форме сумму

Клиент просто физически не сможет изменить сумму, если цену, как это и положено, определяет сервер. Клиент может только изменить товары в корзине.

Пусть у вас в таблице 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.')';

porezon 10.10.2016 22:18

:cray: ну сделайте что я прошу, пожалуйста

laimas 10.10.2016 22:22

Определить цену клиентом и отправить ее серверу?
Это не сложно, в плане кода, но я такого показывать не стану, так делать нельзя, и такое даже обсуждаться не должно.
Пусть вам такое показывает тот, кому пофиг - просят, да пожалуйста. )

porezon 10.10.2016 23:39

И так на странице есть 4 товара которые отображены в <span></span>

есть сумма которую должен заплатить человек(эту сумму он выбирает сам)
то есть в input форме он вставляет например 1500

и далее нажимает отправить, я фильтрую эту сумму проверяю со всеми возможными и т.д

но на сайте есть товары у которых фиксированная цена например 100, 500 и 1500 рублей

нужно чтоб при выборе нужного товара, сумма просто автоматически вставилась в input поле, без введния её пользователям... Больше ничего не нужна, только чтоб с span кнопки сумма прописывалась в input, и если вдруг он выберет другую span кнопку то цена менялась

laimas 11.10.2016 02:13

То есть магазин с аукционом, тогда это все меняет. Но

Цитата:

Сообщение от porezon
на сайте есть товары у которых фиксированная цена например 100, 500 и 1500 рублей

и вашему магазину либо сказочно повезло, либо будет баг. Как происходит аукцион - "Лот №, название/характеристики", а затем принимаются ставки. Вы же упорно просите прислать цену.

Вопрос - каким образом вы будете знать, что присланная клиентом цена в 700 руб, это цена за товар с ценой 500, и не 1500 руб.?

По идее, в таком случае, на странице не может быть отображено 4 товара, а только один, с предлагаемой ценой или диапазоном цен 100 - 1500 и с возможностью указания и своей цены. Но даже в этом случае серверу должна передаваться информация id=>price. Иначе как можно понять это - "на странице есть 4 товара ... есть сумма которую должен заплатить человек(эту сумму он выбирает сам)"? Эта сумма за что, за несуществующий на странице пятый товар?

Цитата:

Сообщение от porezon
я фильтрую эту сумму проверяю со всеми возможными и т.д

Это полная ахинея, если только не иметь уникальных цен или не торговать четырьмя товарами.

warren buffet 11.10.2016 06:15

Типичный галлюциногенный топик "Гуляют там животные невиданной красы..."

porezon, все начинается с бизнес-логики.

porezon 11.10.2016 12:07

почему аукцион? мне не нужно никаких готовых цен, всё работает по типу копилки, любой кидает любую сумму, ну чтоб руками её не писать, выбирает по кнопке нужную себе сумму

laimas 11.10.2016 12:40

Цитата:

Сообщение от 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, это идентификатор товара, а просто цена, это полный бред.

porezon 11.10.2016 15:58

текс текст текст


Часовой пояс GMT +3, время: 03:38.