[RESOLVIDO]Redirecionar para form em branco evento ajax onChange

Prezados,
No meu formulário, tenho o campo CNPJ, onde através de um evento ajax onChange verifica no banco se aquele CNPJ está cadastrado, se não estiver, o sc_alert informa que o CNPJ não existe e que o usuário será redirecionado para o formulário de cadastro de estabelecimento.
O problema é quando o CNPJ não existe, aparece a msg mas não redireciona o usuário.
Alguém poderia me dar uma dica?

O código que estou utilizando no evento ajax onChange no campo nu_cnpj é esse:

$sql=“SELECT nu_cnpj FROM tb_estabelecimento WHERE nu_cnpj = ‘{nu_cnpj}’”;
sc_lookup(rs,$sql);

if({rs[0][0]} == 0) {

		$params = array(
		'type' => 'error',
		'confirmButtonText' => 'OK', 
		'showConfirmButton' => true, 
		'position' => 'center',
		'toast' => false
		);
		sc_alert("CNPJ não cadastrado!!! 
		Você será redirecionado para o Cadastro de Estabelecimentos", $params);
		
		sc_redir(estabelecimento_form, "_parent");	
}

Obrigado

Em vez do Evento Ajax onChange use o OnBlur, e troque o sc_alert que é Javascript pela macro sc_ajax_message(), quando o SC passa pelo sc_alert() ele aborta os códigos PHP que estão abaixo, use sc_ajax_message() porque com essa macro Ajax além de poder exibir a mensagem desejada, ela ainda tem o parâmetro para redirecionar, logo após:
https://www.scriptcase.com.br/docs/pt_br/v9/manual/14-macros/01-visao-geral/#sc_ajax_message

  • Copiar todo o código que esta no evento OnChange para o OnBlur e apagar o onChange.

1 Curtida

Opa Jailton, obrigado pela resposta, me ajudou muito.
Porém o formulário ainda vem como alteração do primeiro registro do banco, preciso que ele venha em branco para que o usuário faça um novo cadastro.
Tentei usar os parâmetros (“toast=Y&redir=estabelecimento_form”) do sc_ajax_message, mas deu na mesma.
Notei também que se tirar o array, da na mesma.
Tem mais alguma dica?

O código ficou assim:

$sql=“SELECT nu_cnpj FROM tb_estabelecimento WHERE nu_cnpj = ‘{nu_cnpj}’”;
sc_lookup(rs,$sql);

if({rs[0][0]} == 0) {

	$params = array(
	'type' => 'error',
            'confirmButtonText' => 'OK',
	'showConfirmButton' => false, 
	'position' => 'center',
	'toast' => true
	);
	sc_ajax_message("CNPJ não cadastrado!!! Você será redirecionado para o Cadastro de Estabelecimentos","ATENÇÃO" );
	sc_redir(estabelecimento_form, "_parent")

}
Obrigado

Antes da macro sc_ajax_message, configure este formulário que vai abrir para abrir em MODO,
‘NOVO REGISTRO’.

sc_apl_conf(“meu_formulario”, “start”, “new”);

Grande Jailton, funcionou perfeitamente, obrigado pela ajuda.
Abraço

Como o problema já foi resolvido o tópico será fechado.