Autor Tópico: [RESOLVIDO] Que difícil !!!! uma simples confirmação em onValidate  (Lida 2663 vezes)

eloy

  • Avançado
  • ****
  • Mensagens: 266
    • Email
Tenho um controle, quero fazer ali uma geração de parcelas, após o click do botão OK, gostaria de uma confirmação, depois da confirmação e gravação fechar o controle, c não confirmado, volta ao controle.

tentativa 1
Já tentei algumas sugestões do forum, mais sem sucesso pq sou bem ruizinho de javascritp.
Consegui q a pergunta fosse feita, ali no ítem JavaScritp->onSubmit
dali pra diante não consegui fazer ele chamar uma função em PHP

tentativa 2
consegui tb adicionando outro botão e colocando sc_confirm() só ai não consegui fechar o form ( controle ) depois de tudo pronto.

alguém dá uma dica ???

obrigado
« Última modificação: Abril 06, 2013, 06:08:24 pm por Bernhard »

Jailton

  • Expert
  • *****
  • Mensagens: 2031
Re:Que difícil !!!! uma simples confirmação em onValidate
« Responder #1 Online: Abril 05, 2013, 05:25:42 pm »
Colocar dentro do Evento OnValidate:

$msg='Deseja Continuar?';

$resp_opcao="<script>
if (confirm('$msg')){
    document.write('S');
} else {
    document.write('N');
}
</script>";

// A resposta vai estar na variável: $resp_opcao (S=OK) ou (N=Cancelar).

if ($resp_opcao=='S') {

   // Seus comandos PHP e macros SC para processar as informações...


   sc_exit(); // Aqui ele fecha o controle e retorna a aplicação anterior que fez a chamada.

}


// Bom Aqui ele vai recarregar o formulário novamente.
sc_ajax_javascript('nm_recarga_form');
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

eloy

  • Avançado
  • ****
  • Mensagens: 266
    • Email
Re:Que difícil !!!! uma simples confirmação em onValidate
« Responder #2 Online: Abril 05, 2013, 06:28:12 pm »
quase funcionou !!!

valeu por me ajudar, só mais uma dúvida:

pra testar coloquei um  echo para olhar dentro de $resp_opcao na execução e ai apareceu a pergunta.
assim ele fez a pergunta só com
Código: [Selecionar]
echo $resp_opcaoimprime o "S" ou "N".

no entanto com
Código: [Selecionar]
if ($resp_opcao=="S") {... ele não aparece a pergunta

Jailton

  • Expert
  • *****
  • Mensagens: 2031
Re:Que difícil !!!! uma simples confirmação em onValidate
« Responder #3 Online: Abril 06, 2013, 01:14:56 am »

Eloy,

Sorry man, esse código que te passei funcionava na V3/V4 quando comecei minha jornada no SC, mas nos meus projetos atuais não
usava ele.

Ai como já sou MASTER JEDI no SC, ehehe analisei e retestei, como esta funcionado agora, segue o TUTORIAL:


CONFIRMAÇÃO EM JAVASCRIPT MOSTRA MENSAGEM com OK e CANCELAR

Crie um campo virtual no formulário chamado: {RetornoJavascript}, marque ele para ficar como campo escondido.

Colocar esta Função no Formulário em: JavaScript
Form > OnSubmit:
 
if (confirm('Deseja Continuar?')){
   document.F1.retornojavascript.value='S';
} else {
   document.F1.retornojavascript.value='N';
}


Agora no Evento > OnValidate tratar o retorno do JavaScript.

if ({RetornoJavaScript}=='S') {
   
   // Usuário Clicou em OK
   
   // Executa seus procedimentos aqui em PHP e MACROS DO SC
   
   sc_exit(); // Fechar o formulário de controle quando terminar.   
       
}

Observações: Sempre os Eventos JavaScript vão ser executados primeiro que os eventos PHP do formulário, e
os campos que são definidos nas funções do JavaScript tem que ser sempre normalizados para ficar tudo em minúsculo,
exemplo: no Formulário o campo esta como RetornoJavaScript e na função JavaScript temo que digita-lo como retornojavascript.


* Obs: Aceito Doações via PayPal, hehe tô brincando, rs.
« Última modificação: Abril 06, 2013, 01:17:03 am por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:[RESOLVIDO] Que difícil !!!! uma simples confirmação em onValidate
« Responder #4 Online: Fevereiro 17, 2014, 01:51:32 am »
Jailton, desculpe desenterrar o tópico, gostaria de te perguntar uma coisa.

Eu testei o seu código e realmente funciona perfeito, mas no onValidate.
Eu tentei usá-lo no OnAfterInsert, OnAfterUpdate... e o código executa certinho, mas a ação principal não.

Por exemplo: No OnAfterInsert o registro não é incluído, no OnAfterUpdate o registro não é alterado.

Código: [Selecionar]
if ({RetornoJavaScript}=='S')
{
sc_redir(grid_contatos.php);   
}
else if ({RetornoJavaScript}=='N')
{
sc_redir(grid_producao.php); 
}

Ele faz o redir certinho de acordo com o botão javascript selecionado, mas o SC esquece de inserir ou atualizar o registro antes.
Não sei se me fiz entender.
Sei que dá pra resolver de outras formas, mas fiquei curioso quanto ao sc nao executar o que deve primeiro, pra só depois "OnAfter" executar o código acima.

Não é nenhuma urgência minha, apenas aproveitei a insônia pra estudar uns macetes de sc.
Sua dica foi muito valiosa! Obrigado.
Rodrigo Araújo

George Carvalho

  • Expert
  • *****
  • Mensagens: 1371
    • Email
Re:[RESOLVIDO] Que difícil !!!! uma simples confirmação em onValidate
« Responder #5 Online: Fevereiro 17, 2014, 04:29:44 am »
Teste colocando a macro sc_commit_trans ("Conexão"); antes do código.
George Carvalho
Porto de Galinhas/PE

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:[RESOLVIDO] Que difícil !!!! uma simples confirmação em onValidate
« Responder #6 Online: Fevereiro 17, 2014, 08:20:47 am »
Perfeito George, era isso mesmo!
Obrigado!!!
Rodrigo Araújo