Tenho uma dificuldade que anda me tirando o sono e se puderem me ajudar, agradeço.
Antes, farei um apanhado básico para que entendam o meu procedimento.
Tenho em um sistema uma tabela Pagamento, outra chamada Item_Pagamento e mais uma chamada de nome Conta. No meu formulário, preciso associar várias contas que estão na tabela Conta a um determinado pagamento que está na tabela Pagamento. Esta associação é feita na tabela Item_Pagamento.
O que faço nestas funções?
Na função salvarItemPgto(), pego o valor de todos os ítens do tipo checkbox de nome itempgto.
Perrcorro a lista de ítens de nome itempgto e quando estão "checados" como true, chamo a função verificaRegistroItem_Pgto(itempgto.value,cd_pagamento) para ver se aquele registro já existe no banco.
Se o registro já existir, não faço nada e continuo percorrendo a lista de checkbox, se não existir, chamo a função inserirItem_Pgto(Dados.cd_conta,Dados.cd_pagamento) para inserir um ítem na tabela Item_Pagamento e depois continuo percorrendo a lista de checkbox.
O que está acontecendo de errado(Qual o meu problema):
Toda a vez que marco mais de um checkbox, ele deveria fazer a varredura em todos os checkbox, ir verificando quem está marcado como true e que não existe no banco e em seguida, inserir no banco, mas o que acontece é que se eu marcar 2 checkbox por exemplo, quando eu clicar no botão Incluir Contas, ele só insere o primeiro que está marcado, e caso eu queira inserir o segundo, tenho que clicar novamente no botão Incluir Contas e assim por diante. No entanto, se eu "encher o código de alert" para ir ver onde está o erro, este erro não acontece, pois desta maneira, basta apenas eu clicar uma vez em Incluir Contas que ele inclui todos os registros marcados perfeitamente.
O que eu já tentei fazer:
Me disseram que é porque o Ajax é assíncrono, mas mesmo eu colocando false no atributo Async, não rola.
Coloquei uma simulação de sleep para ver se quando o código executa mais devagar ele rola, mas isto também não funcionou.
Função que percorre os ítens do tipo checkbox e chama as funções para verficação.
function salvarItemPgto(){
var cd_pagamento = document.getElementById('cd_pagamento').value;
var itempgto = document.getElementsByName('itempgto');
if(cd_pagamento != ""){
for(i=0;i<itempgto.length;i++){
if(itempgto[i].checked == true){
verificaRegistroItem_Pgto(itempgto[i].value,cd_pagamento);
}
else{
document.getElementById('aviso').innerHTML = "<p>Este item já existe ou não está marcado</p>";
}
}
}
else {
document.getElementById('aviso').innerHTML = "<p>Deve existir um Pagamento em aberto!</p>";
}
}
Função utilizada para verificar se registro já existe e se não existir, chama a função de inserir no Banco
Pergunta
Paulada
Olá pessoal!
Tenho uma dificuldade que anda me tirando o sono e se puderem me ajudar, agradeço.
Antes, farei um apanhado básico para que entendam o meu procedimento.
Tenho em um sistema uma tabela Pagamento, outra chamada Item_Pagamento e mais uma chamada de nome Conta. No meu formulário, preciso associar várias contas que estão na tabela Conta a um determinado pagamento que está na tabela Pagamento. Esta associação é feita na tabela Item_Pagamento.
O que faço nestas funções?
- Na função salvarItemPgto(), pego o valor de todos os ítens do tipo checkbox de nome itempgto.
- Perrcorro a lista de ítens de nome itempgto e quando estão "checados" como true, chamo a função verificaRegistroItem_Pgto(itempgto.value,cd_pagamento) para ver se aquele registro já existe no banco.
- Se o registro já existir, não faço nada e continuo percorrendo a lista de checkbox, se não existir, chamo a função inserirItem_Pgto(Dados.cd_conta,Dados.cd_pagamento) para inserir um ítem na tabela Item_Pagamento e depois continuo percorrendo a lista de checkbox.
O que está acontecendo de errado(Qual o meu problema):Toda a vez que marco mais de um checkbox, ele deveria fazer a varredura em todos os checkbox, ir verificando quem está marcado como true e que não existe no banco e em seguida, inserir no banco, mas o que acontece é que se eu marcar 2 checkbox por exemplo, quando eu clicar no botão Incluir Contas, ele só insere o primeiro que está marcado, e caso eu queira inserir o segundo, tenho que clicar novamente no botão Incluir Contas e assim por diante. No entanto, se eu "encher o código de alert" para ir ver onde está o erro, este erro não acontece, pois desta maneira, basta apenas eu clicar uma vez em Incluir Contas que ele inclui todos os registros marcados perfeitamente.
O que eu já tentei fazer:
Função que percorre os ítens do tipo checkbox e chama as funções para verficação.
Função utilizada para verificar se registro já existe e se não existir, chama a função de inserir no Banco Função para inserção do registro no banco:mellow:
Editado por PauladaLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.