Construir uma forma dinamicamente com Ajax, jQuery
Pergunta
Estou construindo uma aplicação muito pequena web ERP com PHP / MySQL / CodeIgniter / jQuery
O Bill / Fatura é construído com
current date
client data
etc
Agora, devo acrescentar produtos para essa nova nota fiscal que está sendo criado, sem recarregar / apresentação da página. Cada produto terá sua qtty., Descrição, preço unitário, subtotal, etc.
Eu gostaria de adicionar cada produto "linha" usando Ajax / jQuery.
- Como devo construir os produtos formam dinamicamente? Quero dizer, que permite aos usuários adicionar uma nova linha de produtos, ou linhas de produtos de remoção de fatura, usando Ajax?
- Como a soma de todas as "linhas" adicionados dinamicamente em forma, para obter total da fatura?
- E como devo receber e tratar todos os dados de postagem para que eu possa inserir o registro da fatura adequada na tabela de faturas e inserir os registros de produtos na tabela de products_invoices?
EDIT: aqui você pode ver um exemplo de trabalho do que eu quero fazer
http://www.bambooinvoice.org/index.php/invoices/newinvoice
EDIT2: Este plugin jQuery parece ser o que eu estava procurando
http://code.google.com/p/jquery-dynamic-form/
Solução
Basicamente, você tem que adicionar os elementos do formulário para o DOM dinamicamente como o usuário mantém adicionando linhas de novos dados. Acredito jquery será de muita ajuda no uso de APIs padrão para acessar / modificar nós DOM.
Para resumir figuras, você tem que embrulhar os campos numéricos com ganchos especiais como <span id="value_x">34</span>
onde x
é um contador. Após cada adição desses novos dados, iterate através de tais elementos span
e somar os valores e exibi-los em um campo como $("#sumtotal").innerHTML = sum;
Depois que as atualizações dinâmicas para a forma, quando o usuário clica no botão enviar, todos os dados do formulário irá para o servidor como dados normais de correio. Você deve usar name
e id
atributos adequados para os campos de dados que você deseja processo no servidor e atualizar alguma tabela do banco de dados.
Outras dicas
desde que você está usando jQuery, eu usaria o jQuery grade de encaixe para implementar a seção de linhas de produtos.
É altamente configurável e flexível, você pode usar Ajax para preencher manualmente ou automaticamente as linhas (que pode ler diretamente de uma tabela MySQL com um simples backend PHP) e você tem todas as facilidades para iterate todas as linhas para postar os resultados para o servidor, para fazer a paginação (se você precisa de um monte de linha, que usei com sucesso com mais tha 15.000 linhas) e fazer adições e outras operações.
Espero que ajude!