Inserindo produtos de forma dinâmica

1. Inserindo produtos de forma dinâmica

Perfil removido
removido

(usa Nenhuma)

Enviado em 06/08/2013 - 16:28h

Pessoal estou com um problemão, pelo menos para mim.
Seguinte:
Estou criando um cadastro de nota fiscal de compras, e nessa nota são adicionados vários produtos que são buscados quando se clica no botão 'Adicionar produtos'. Quando clicado no botão é aberta uma tela com os produtos para ser selecionados, toda vez que se clica no botão 'Adicionar produtos' é adicionada uma linha com os campos de ICMS e tals...
A duvida é:
Como é que eu faço para adicionar os dados do produto selecionado assim que clicarmos no botão 'Inserir Produto' nos campos de traz onde consta ICMS e tals??
;/
print: http://imm.io/1eurU

campos em branco:

<table border="0" width="100%">
<tr bgcolor="whitesmoke"><td colspan="12"><hr></td></tr>
<tr bgcolor="whitesmoke">

<td>Código de Barras: </td>
<td>Descrição: </td>
<td>Unidade: </td>
<td>Quant.:</td>
<td>Val. Unid.: </td>
<td>Total: </td>
<td>B.ICM:</td>
<td>ICMS: </td>
<td>IPI: </td>
<td>Base ST:</td>
<td>ST.: </td>
<td></td>
</tr>
<tr class="linhas">
<td style="text-align: center"><input type="text" name="barras[]" style="width:90px"></td>
<td style="text-align: center"><input type="text" name="desc[]"></td>
<td style="text-align: center"><input type="text" name="uni[]" style="width:50px"></td>
<td style="text-align: center"><input type="text" name="qt[]" style="width:40px"></td>
<td style="text-align: center"><input type="text" name="vu[]" style="width:50px"></td>
<td style="text-align: center"><input type="text" name="full[]" style="width:50px"></td>
<td style="text-align: center"><input type="text" name="bicm[]" style="width:50px"></td>
<td style="text-align: center"><input type="text" name="icms[]" style="width:50px"></td>
<td style="text-align: center"><input type="text" name="ipi[]" style="width:50px"></td>
<td style="text-align: center"><input type="text" name="bst[]" style="width:50px"></td>
<td style="text-align: center"><input type="text" name="st[]" style="width:50px"></td>
<td><a href="#" class="removerCampo" title="Remover linha"><i class="icon-trash"></i></a></td>
</tr>
<tr><td>
<input type="button" value="Adicionar produtos" class="btn btn-mini btn-primary adicionarCampo" target="_blank" onClick="window.open('popprodutono.php', this.target, 'width=850, height=430, scrollbars=yes'); return false;"/></td>
<td colspan="12" style="text-align: right">
</i><input type="text" name="desconto" id="desconto" style="width:100px" placeholder="Desconto">
<input type="text" name="total[]" style="width:100px" placeholder="Total de produtos" readonly="readonly"></td>
</tr>

</table>


lista dos produtos

<div class="row-fluid">


<div class="block"><form method="GET" action="#">
<p class="block-heading">Faça uma buscar: <input type="text" id="consulta" name="consulta" maxlength="255"/> <input type="submit" value="Buscar" class="btn btn-mini btn-primary"/> </p>
</form>

<div class="block-body">
<form name="form_combox" method="get" action="#" onsubmit="return confirma();">
<table border="0" width="100%" align="center">
<tr>
<table width="100%" border="1" align="center" cellspacing="0">
<tr bgcolor="whitesmoke">
<td width="2%"><input type="checkbox" name="selall" onClick="CheckAll();"></td>
<td width="15%"><strong>Código de barras</strong></td>
<td width="30%"><strong>Produto</strong></td>
<td width="20%"><strong>Grupo mercadoria</strong></td>
<td width="20%"><strong>Preço venda</strong></td>
<td><strong>Quantidade</strong></td>
</tr>
<?php
$sql = "SELECT p.idproduto, p.cod_barras, p.produto, p.preco_venda, p.quantidade, gm.nome
FROM produto p
INNER JOIN grupo_mercadoria gm ON gm.idgrupo_mercadoria = p.grupo_mercadoria_idgrupo_mercadoria
WHERE p.enable = 'Y'
ORDER BY p.produto";
$execute = mysql_query($sql) or die("Erro: " .mysql_error());
$cont = mysql_num_rows($execute);

for ($i = 0; $i < $cont; $i++){
$resultado = mysql_fetch_object($execute);
?>
<tr>
<td><input type="checkbox" name="excluir[]" value="<?php echo $resultado->idproduto; ?>"/></td>
<td><?php echo $resultado->cod_barras; ?></td>
<td><?php echo $resultado->produto;?></td>
<td><?php echo $resultado->nome ;?></td>
<td><?php echo $resultado->preco_venda; ?></td>
<td><?php echo $resultado->quantidade; ?></td>

</tr>

<?php
} // fexar for
?>


</table>

<table border="0" width="100%" align="center">
<tr><td>
<input type="submit" name="submit" value="Inserir Produto" class="btn btn-primary"/>


</td>

</tr>
</table>

</form>
</tr>
</table>
<!-- <p><a class="btn btn-primary btn-large">Learn more »</a></p>-->
</div>
</div>
</div>



  


2. Re: Inserindo produtos de forma dinâmica

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 07/08/2013 - 10:12h


<input id="ADDBTN" type="button" value="Adicionar produtos" class="btn btn-mini btn-primary adicionarCampo" target="_blank" onClick="window.open('popprodutono.php', this.target, 'width=850, height=430, scrollbars=yes'); return false;"/></td>




Faz isso não. Usa o jQuery para controlar o evento click do botão, que fica mais fácil. Aí você pode usar AJAX para pegar os dados, e então usar um $('input').val() para setar os valores das inputs.



$(document).ready(function(){

$('input#ADDBTN').click(function(){
// mostra o pop up

// pega os valores setados nos campos do popup

// coloca os valores nos campos desejados e faz os cálculos
});
});


Pra colocar os valores você pode fazer das seguintes formas:

Usar o
método .append() da jQuery, e colocar um TR inteira. (o que eu faria)
Ou colocar valor a valor nos campos, usando $('input#seuInput').val('novo valor');

O que eu faria é mostrar uma lista de seleção na popup (os itens do estoque), então quando o usuário escolhesse o item, mandaria um $.ajax() com o ID do produto pra um arquivo .php que vai imprimir a TR inteira, com todas as informações de acordo com o ID POSTado pra ele. Entendeu?

1. Usuário clica em Adicionar produto.
2. Abre o pop up com uma lista de produtos para ser escolhido
3. O usuário clica, seleciona, escreve (você escolhe a forma) o produto.
4. jQuery usa AJAX para enviar o ID desse produto para um arquivo "pegaInfo.php"
5. O pegaInfo.php imprime todas as informações do produto com o ID POSTado
6. jQuery usa success:function(data){} do AJAX para colocar as informações na tabela.


...
var idEscolhido = $('input#pegaId').val();

$.ajax({
type: 'post',
url:'pegaInfo.php',
data: {id: idEscolhido},
success: function ( retValue ) {
$('table#suaTabela tbody').append(retValue);
}
});


Espero ter ajudado,
Qualquer coisa posta denovo,
[]'s
Enzo Ferber


3. Re: Inserindo produtos de forma dinâmica

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/08/2013 - 16:34h

estou colocando essa ideia aqui:
https://gist.github.com/igoremuniz/6214266
https://gist.github.com/igoremuniz/6214281

da uma força ai?


4. sugestão livros

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 13/08/2013 - 08:41h

Eu aprendi jquery atraves de dois livros (ambos em portugues):
- jquery cookbook (da comunidade de desenvolvedores jquery, editora novatec)
- ajax com jquery (Mauricio Samy Silva, editora novatec)
Caso interesse, fica a dica.



5. Re: Inserindo produtos de forma dinâmica

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 13/08/2013 - 14:11h

cassio88 escreveu:

Eu aprendi jquery atraves de dois livros (ambos em portugues):
- jquery cookbook (da comunidade de desenvolvedores jquery, editora novatec)
- ajax com jquery (Mauricio Samy Silva, editora novatec)
Caso interesse, fica a dica.


Rapaz, que coincidência!

Eu aprendi jQuery com o "jQuery Cookbox", agora tô terminando de ler o "Ajax com jQuery".

Massa....

Também indico ambos. E também dou um conselho (que se fosse bom, agente vendia, mas vá lá):

Aprende o JavaScript puro muito bem, porque quando der um pau esquisito no seu codigo jQuery, você vai penar pra resolver se não souber JS. E não esquece, jQuery é uma extensão do JS, e não um linguagem em si, então não o trate como uma linguagem. ;)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts