[RESOLVIDO] Que difícil !!!! uma simples confirmação em onValidate

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

Colocar dentro do Evento OnValidate:

$msg=‘Deseja Continuar?’;

$resp_opcao="";

// 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’);

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

echo $resp_opcao

imprime o “S” ou “N”.

no entanto com

 if ($resp_opcao=="S") {... 

ele não aparece a pergunta

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.
1 Curtida

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.

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.

Teste colocando a macro sc_commit_trans (“Conexão”); antes do código.

Perfeito George, era isso mesmo!
Obrigado!!!