Cобытие change. Как грамотно написать код?
Здравствуйте! Подскажите как грамотнее написать код:
Задача: 1.При нажатии на ссылку "+ Добавить еще продукцию" появлялся еще один ряд <tr> в таблице, с теми же <input> но с пустыми value=''' 2. При вводе чисел в поля "Объем" и "Стоимость литра" в поле "Сумма" вставлялся результат перемножения ("Объем" х "Стоимость литра") НО ПЕРЕМНОЖАЛИСЬ числа из того же ряда <tr>! 3. Дальше все эти значения нужно будет ввести так же построчно в базу данных Проблема: 1.Как написать код чтоб можно было идентифицировать поля, при том что пользователь может добавить неограниченное кол-во <tr>? (т.е. if ($('Стоимость литра из 2 строки').val()!=0 && $(Объем из 2 строки').val()!= 0){ var res = $('Стоимость литра из 2 строки').val()*(Объем из 2 строки').val() $(Сумма из 2 строки').val(res) } ) <table class="table-bordered"> <tr> <td>Продукция</td> <td>Объем</td> <td>Сумма</td> <td>Стоимость литра</td> </tr> <tr> <td> <select name="product[]" class="form-control" id="product"> <option value="0">Продукция не выбрана</option> <?php foreach ($products as $item){?> <option value="<?php echo $item['id']?>" <?php if($item['id']==$_POST['product'])?>> <?php echo $item['name_product']?> </option> <?php }?> </select> </td> <td><input type="text" name="amount[]" placeholder="" class="form-control" value=" "></td> <td><input type="text" name="summ[]" readonly placeholder="Автом пересчет" class="form-control" value=""></td> <td><input type="text" name="price_liter[]" placeholder="Автом пересчет" class="form-control" value=" "></td> </tr> <tr> <td> <select name="product[]" class="form-control" id="product"> <option value="0">Продукция не выбрана</option> <?php foreach ($products as $item){?> <option value="<?php echo $item['id']?>" <?php if($item['id']==$_POST['product'])?>> <?php echo $item['name_product']?> </option> <?php }?> </select> </td> <td><input type="text" name="amount[]" placeholder="" class="form-control" value=" "></td> <td><input type="text" name="summ[]" readonly placeholder="Автом пересчет" class="form-control" value=""></td> <td><input type="text" name="price_liter[]" placeholder="Автом пересчет" class="form-control" value=" "></td> </tr> </table> <br> <a>+ Добавить еще продукцию</a> |
Цитата:
Цитата:
Причем не обязательно всегда в строках хранить поля. Достаточно по некой кнопке "записать строку", менять поля на обычное значение ячейки... |
ilyamaksimov, в общих разделах твоя ПХП каша никому не нужна. Делай простые ХТМЛ-примеры.
|
1. при <option value="">Продукция не выбрана</option>
var tbl = $('.table-bordered'); tbl.find('tr:eq(1)').clone().appendTo(tbl).find('select,input').val(''). 2. Тут вопрос, зачем эта сумма в контексте добавления в базу? |
Цитата:
Но мне еще очень нужно, чтоб при добавлении к примеру 93 ряда, в поле 'Cумма' подставлялся результат умножения чисел, который ввел пользователь в поля 'объем'( из 93 ряда) и 'Стоимость литра' ( из 93 ряда). Я так понимаю name тоже нужно менять (типо name_93 и увеличивать от количества ряда) чтоб по нему как то идентифицировать и умножать значения??!! |
ilyamaksimov,
что это такое вообще, поясните? Ну допустим, пусть бы речь была о корзине пользователя, хотя копирование при выборе в данном случае, это нонсенс, но все-таки. Тогда бы еще можно понять выбор цены и количества, которые помещаются в базу. Но сумму за данный выбор помещать в базу, это никчемное расточительство. Не проблема рассчитать, но зачем эту сумму нужно помещать в базу? |
Цитата:
В зависимости от потребностей компании в заявке может быть разное количество как продукции так и его количества. <table class="table-bordered"> <tr> <td>Продукция</td> <td>Объем</td> <td>Сумма</td> <td>Стоимость литра</td> </tr> <tr> <td> <select name="product[]" class="form-control" id="product"> <option value="1">АИ-98</option> <option value="2">АИ-95</option> <option value="3">АИ-92</option> </select> </td> <td><input type="text" name="amount[]" placeholder="" class="form-control" value=" "></td> <td><input type="text" name="summ[]" readonly placeholder="Автом пересчет" class="form-control" value=""></td> <td><input type="text" name="price_liter[]" placeholder="Автом пересчет" class="form-control" value=" "></td> </tr> Эта заявка дальше висит на сайте до того момента как полностью не произойдет оплата. И руководитель хочет видеть (на сайте ) что мы заказали и по какой цене |
Так же ему нужно будет заполнить кучу других <input> типа:
у кого покупаем, по какому договору, каким транспортом будет все поставлять НО для того чтобы не захломлять тут код я выложил только часть, которую я пока не понимаю как закодить |
Ясно, ну так зачем же сумму за выбор помещать в input type="text" name="summ[]", гнать ее на сервер, сохранять в базе, если ее при выборке из базы можно будет рассчитать и получить?
Ну что за глупости. Для контроля на клиенте сумму набранного можно просто выводить, например в элемент OUTPUT (доступен в HTML5), ну или в любой иной элемент, если нужна поддержка и старых браузеров. PS. И списки должны иметь первой опцию с пустым значением <option value="">Продукция не выбрана</option>, а сам список не должен иметь id. value=" " - это то зачем? |
Цитата:
![]() |
Цитата:
|
Цитата:
(т.е. если менеджер добавил 93 ряда то и в базу данных внести 93 строки с теми же значениями но с id от этой заявки) Как по другому добавить в БД эти ряды(при том что я не знаю сколько их будет вообще) я не знаю. Если есть идеи буду очень рад узнать!:) |
Цитата:
value="<?php $_POST['name'][n] ?> " - вот отчего пробел в значении появляется. Цитата:
Надо заметить, что если price_liter, это было бы определение характеристики при добавлении продукции, то можно еще понять, что это поле ввода. Если же пользователь выбирает продукцию, ее объем/количество, то он просто не должен иметь возможности ввода ее цены, ибо она уже определена. В общем похоже все на бред. Ну бог с ним, чего вы там считаете, это ваши проблемы, и хотя оперировать действительными именами полей sql-таблицы, это тоже плохо (если это так), но пусть будет так. Тогда при выборе пользователя в поля ее запишется: product - идентификатор продукта amount - объем price_liter - цена Все, этого достаточно. При выборке из этой таблицы (SELECT), запросом по идентификатору хранящемуся в product, запросом к таблице хранящей именования продуктов можно узнать его именование. Как собственно и цену за литр/ломоть/etc, то есть, поле price_liter в данной таблице, это тоже избыточные данные. Но пусть так. Далее выводим "цену за", количество выбранного, и считаем в запросе сумму за выбор, как price_liter * amount AS summ. |
Цитата:
Мне иногда нужна помощь в JS, PHP (хоть форум и не связан с PHP). Мы можем с вами как то держать связь помимо форума? Естественно за знания и информацию я готов финансово отблагодарить |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 10:31. |