30% OFF para compra e renovaÇÃo. Comprar agora

Autor Tópico: UpDate imediato do registo num Formulário  (Lida 114 vezes)

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 451
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
UpDate imediato do registo num Formulário
« Online: Junho 05, 2018, 06:44:21 pm »
Boas
No formulário, Por vezes tenho a necessidade de aplicar uma instrução / macro onde após a atualização de 1 ou mais campos de 1 registo, o mesmo seja atualizado automaticamente sem necessidade de clicar no botão "ATUALIZAR"
A razão é simples alguns utilizadores efetuam a alteração no(s) campos(s) e esquecem-se de clicar em ATUALIZAR, assim seria uma segurança na atualização de dados.
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

Haroldo

  • Expert
  • *****
  • Mensagens: 8329
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:UpDate imediato do registo num Formulário
« Responder #1 Online: Junho 05, 2018, 10:23:47 pm »
Criando eventos Ajax onchange nos campos e executando a instrução já de salvamento.

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 451
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:UpDate imediato do registo num Formulário
« Responder #2 Online: Junho 06, 2018, 06:02:38 am »
Algum exemplo disponível?
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

Haroldo

  • Expert
  • *****
  • Mensagens: 8329
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:UpDate imediato do registo num Formulário
« Responder #3 Online: Junho 06, 2018, 06:58:30 am »
Evento Ajax Onchange do campo que deseja o salvamento automático.
Código: [Selecionar]
[var_prox_campo]='Nome';
if ({id}): // campo pk da tabela do formulário
$arr=['incluir'];
//echo "estou incluindo";
else:
$arr=['alterar'];
//echo "estou alterando";
endif;
sc_ajax_javascript('nm_atualiza',$arr);

evento onscriptinit:
Código: [Selecionar]
sc_set_focus([var_prox_campo]);


Configurar para Retornar após inclusão em Aplicações/Navegação.

Em variareis globais configure var_prox_campo como não sessão, não get, não post, opcional de saída.

Se não desejar aparecer o Processando do evento ajax pode usar em javascript e exibir uma msg temporária de dados salvos.

^^^
*** Testado ***

Da para fazer mais automático para todos os campos mas acho mais arriscado, ideal mesmo é escolher os campos principais do formulário e criando os eventos onchange de cada um e colando o código acima.
Segue um teste de captura de qualquer campo alterado (evento onload):
Código: [Selecionar]
?><script>
$(document).ready(function() {
$('form').change(function() {
  alert('alterou');
   });
});
</script><?php

No logar do alert nm_atualiza('alterar') ou nm_atualiza('incluir') conforma a situação.





TAGS: Haroldo, Salvamento, Automático, Campos, Onchange, Incluir, Alterar
« Última modificação: Junho 06, 2018, 08:48:58 am por Haroldo »

Haroldo

  • Expert
  • *****
  • Mensagens: 8329
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:UpDate imediato do registo num Formulário
« Responder #4 Online: Junho 06, 2018, 08:48:38 am »
Usando automático para todos os campos.

evento onscriptinit:
Código: [Selecionar]
if ({id}): //campo pk autoincrement da tabela do formulário
$js='0';
else:
$js='1';
endif;

echo "<script> var jsFlag = $js; </script>";


Evento onload:
Código: [Selecionar]
?><script>
$(document).ready(function() {
$('form[name=F1]').change(function() {
    if (jsFlag==0) {
nm_atualiza('incluir');
return false;
}else{
nm_atualiza('alterar');
return false;
}
   });
});
</script><?php

*** Fica por conta e risco de quem for usar.
*** Esse exemplo não muda o foco para o próximo campo.



TAGS: Haroldo, Salvamento, Automático, Campos, Onchange, Incluir, Alterar
« Última modificação: Junho 06, 2018, 09:21:15 am por Haroldo »

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 451
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:UpDate imediato do registo num Formulário
« Responder #5 Online: Junho 06, 2018, 11:05:45 am »
Obrigado pelos Exemplos....
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info