Показать сообщение отдельно
  #3 (permalink)  
Старый 05.03.2015, 21:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Смысл идентификации в уникальности, а вашими check_soli и soli обеспечить это будет проблематично. Идентификатор в базе, это номер, и никаких гвоздей, и по этим номерам и должны идентифицироваться элементы формы на сервере, а у вас не идентификация, а каша.

Писать html вот так:

type = "text" name = "sahar" - это скармливать клиенту пустоту ничего незначащую.

$(function() {
    var e = $('form').find('input:text').keyup(function() {
         var a = [0,0,0];
         e.each(function() {
            if(n = this.value.replace(/\D/g,'')*1) {
                $(this.parentNode).find('span').each(function(i, e) {
                   var v = n * $(e).data('v');
                   $(e).text(v);
                   a[i+1] += v;
                })
                a[0] += n;
            }
         });
         $('#total').html('<span>' + a.join('</span> <span>') + '</span>')
    })
});

<form>
    <div><input type="text" name="salt" />В: <span data-v="2">a1</span> Н: <span data-v="4">a2</span></div>
    <div><input type="text" name="pepper" />В: <span data-v="32">b1</span> Н: <span data-v="1">b2</span></div>
    <div><input type="text" name="sugar" />В: <span data-v="12">c1</span> Н: <span data-v="3">c2</span></div>
</form>
<div id="total"></div>

salt - соль, pepper - перец, sugar - сахар.

Данные на которые надо умножать должен хранить элемент (data-v в примере), иначе сложно будет написать компактно. Как и что суммировать не понятно, и в какую колонку, поэтому смотрите пример и изменяйте под свое.
Ответить с цитированием