Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2017, 13:33
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

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>
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2017, 14:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от ilyamaksimov
Как написать код чтоб можно было идентифицировать поля
У них есть свой name...

Сообщение от ilyamaksimov
при том что пользователь может добавить неограниченное кол-во <tr>
Т.о. у полей будут разные родители...

Причем не обязательно всегда в строках хранить поля. Достаточно по некой кнопке "записать строку", менять поля на обычное значение ячейки...
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2017, 14:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

ilyamaksimov, в общих разделах твоя ПХП каша никому не нужна. Делай простые ХТМЛ-примеры.
Ответить с цитированием
  #4 (permalink)  
Старый 15.06.2017, 14:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

1. при <option value="">Продукция не выбрана</option>
var tbl = $('.table-bordered');
tbl.find('tr:eq(1)').clone().appendTo(tbl).find('select,input').val('').


2. Тут вопрос, зачем эта сумма в контексте добавления в базу?

Последний раз редактировалось laimas, 15.06.2017 в 14:58.
Ответить с цитированием
  #5 (permalink)  
Старый 15.06.2017, 17:32
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Сообщение от laimas
1. при <option value="">Продукция не выбрана</option>
Спасибо за вариант!

Но мне еще очень нужно, чтоб при добавлении к примеру 93 ряда, в поле 'Cумма' подставлялся результат умножения чисел, который ввел пользователь в поля 'объем'( из 93 ряда) и 'Стоимость литра' ( из 93 ряда).

Я так понимаю name тоже нужно менять (типо name_93 и увеличивать от количества ряда) чтоб по нему как то идентифицировать и умножать значения??!!
Ответить с цитированием
  #6 (permalink)  
Старый 15.06.2017, 17:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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

Не проблема рассчитать, но зачем эту сумму нужно помещать в базу?
Ответить с цитированием
  #7 (permalink)  
Старый 15.06.2017, 18:09
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

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

Не проблема рассчитать, но зачем эту сумму нужно помещать в базу?
вообщем менеджер делает заявку на покупку продукции разной номенклатуры.
В зависимости от потребностей компании в заявке может быть разное количество как продукции так и его количества.

<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>


Эта заявка дальше висит на сайте до того момента как полностью не произойдет оплата. И руководитель хочет видеть (на сайте ) что мы заказали и по какой цене
Ответить с цитированием
  #8 (permalink)  
Старый 15.06.2017, 18:12
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Так же ему нужно будет заполнить кучу других <input> типа:
у кого покупаем,
по какому договору,
каким транспортом будет все поставлять

НО для того чтобы не захломлять тут код я выложил только часть, которую я пока не понимаю как закодить
Ответить с цитированием
  #9 (permalink)  
Старый 15.06.2017, 18:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ясно, ну так зачем же сумму за выбор помещать в input type="text" name="summ[]", гнать ее на сервер, сохранять в базе, если ее при выборке из базы можно будет рассчитать и получить?

Ну что за глупости. Для контроля на клиенте сумму набранного можно просто выводить, например в элемент OUTPUT (доступен в HTML5), ну или в любой иной элемент, если нужна поддержка и старых браузеров.

PS. И списки должны иметь первой опцию с пустым значением <option value="">Продукция не выбрана</option>, а сам список не должен иметь id.

value=" " - это то зачем?

Последний раз редактировалось laimas, 15.06.2017 в 18:35.
Ответить с цитированием
  #10 (permalink)  
Старый 15.06.2017, 18:46
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Сообщение от laimas
Ясно, ну так зачем же сумму за выбор помещать в input type="text" name="summ[]", гнать ее на сервер, сохранять в базе, если ее при выборке из базы можно будет рассчитать и получить?
Я немного упростил задачу. На самом деле полей будет больше, и пересчитывать придется несколько полей по разным формулам, и обязательно нужно, чтоб пересчет менеджер видел сразу в браузере (для своей проверки- требование начальства)

Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать код, который проверяет знание таблицы умножения klink_patrick Общие вопросы Javascript 2 29.03.2017 19:36
Как оптимизировать данный код Stepan Общие вопросы Javascript 14 20.07.2016 11:04
Как найти и заменить код скрипта на странице на другой код? smls Общие вопросы Javascript 2 18.07.2016 22:01
Как найти исходный код AS3 внутри FLA файла? Gamestop Flash 7 12.01.2013 13:57
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40