Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Igor Antonio

Como posso puxar uma mensagem de erro no meio do HTML?

Recommended Posts

Ae pessoal, sou novo aqui no fórum e na área de PHP, estou com a seguinte dúvida:

- Estou usando um sistema de validação de CNPJ em um formulário de cadastro, caso o CNPJ seja inválido manda exibe um alerta, se for válido cadastra.

O négocio é que a mensagem eu gostaria que aparecesse do lado do textfield do cadastro, dizendo que foi digitado um CNPJ inválido. Por enquanto tá abrindo uma janela de alerta.

.: Link da Página de Cadastro :.

Teria como escolher o local onde aparece uma msg echo ou então criar uma váriável com a string da mensagem de CNPJ inválido e puxá-la no meio do html?

 

Desde já agradeço!

 

Segue o código:

function verificaCNPJ($cnpj) {     if (strlen($cnpj) <> 18) return 0;     $soma1 = ($cnpj[0] * 5) +     ($cnpj[1] * 4) +     ($cnpj[3] * 3) +     ($cnpj[4] * 2) +     ($cnpj[5] * 9) +     ($cnpj[7] * 8) +     ($cnpj[8] * 7) +     ($cnpj[9] * 6) +     ($cnpj[11] * 5) +     ($cnpj[12] * 4) +     ($cnpj[13] * 3) +     ($cnpj[14] * 2);     $resto = $soma1 % 11;     $digito1 = $resto < 2 ? 0 : 11 - $resto;     $soma2 = ($cnpj[0] * 6) +     ($cnpj[1] * 5) +     ($cnpj[3] * 4) +     ($cnpj[4] * 3) +     ($cnpj[5] * 2) +     ($cnpj[7] * 9) +     ($cnpj[8] * 8) +     ($cnpj[9] * 7) +     ($cnpj[11] * 6) +     ($cnpj[12] * 5) +     ($cnpj[13] * 4) +     ($cnpj[14] * 3) +     ($cnpj[16] * 2);     $resto = $soma2 % 11;     $digito2 = $resto < 2 ? 0 : 11 - $resto;     return (($cnpj[16] == $digito1) && ($cnpj[17] == $digito2)); } if (!verificaCNPJ($cnpj)){ echo"<script>\n";echo"window.alert('CNPJ Inválido, por favor tente novamente')\n";echo"history.back()\n";echo"</script>\n";    } else{                                                                 $insertSQL = sprintf("INSERT INTO cadastro (razaosocial, nomefantasia, cnpj, ddd, tel, ddd2, tel2, dddfax, fax, email, endereco, complemento, uf, cidade, cep, bairro, usuario, senha, promocao) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",                       GetSQLValueString($_POST['razaosocial'], "text"),                       GetSQLValueString($_POST['nomefantasia'], "text"),                       GetSQLValueString($_POST['cnpj'], "text"),                       GetSQLValueString($_POST['ddd'], "text"),                       GetSQLValueString($_POST['tel'], "text"),                       GetSQLValueString($_POST['ddd2'], "text"),                       GetSQLValueString($_POST['tel2'], "text"),                       GetSQLValueString($_POST['dddfax'], "text"),                       GetSQLValueString($_POST['fax'], "text"),                       GetSQLValueString($_POST['email'], "text"),                       GetSQLValueString($_POST['endereco'], "text"),                       GetSQLValueString($_POST['complemento'], "text"),                       GetSQLValueString($_POST['uf'], "text"),                       GetSQLValueString($_POST['cidade'], "text"),                       GetSQLValueString($_POST['cep'], "text"),                       GetSQLValueString($_POST['bairro'], "text"),                       GetSQLValueString($_POST['usuario'], "text"),                       GetSQLValueString($_POST['senha'], "text"),                       GetSQLValueString($_POST['promocao'], "text"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom se eu entendi você quer que exiba uma mensagem de texto, dizendo o campo errado...

Você pode fazer o seguinte, criar uma variável...

if (!verificaCNPJ($cnpj))  {	$erro = "Campo CNPJ inválido!";	echo("<script>window.location='http://seusite.com.br/?erro=$erro'</script>"); 	die;  }

Ai você vai na página que está o cadastro faz o seguinte no inicio da página:

<?$erro = $_GET['erro'];echo ("$erro"); ?>
O echo("$erro"); você poe onde quer exibir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado amigo! Exatamente o que eu queria, funcionou perfeito.Agora, se não for pedir demais, alguem pode me explicar pra que serve o comando "die" e pra que eu precisaria usar o $erro = $_GET['erro'];.Meu script de validação php tá na própria página do cadastro, não em um arquivo separado.Agradeço novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o "die" é para parar por ali, para não continuar com o cadastro... senão a pessoa mesmo com erro cadastra.

O $_GET['erro'] , é para retornar a variavel erro criada enviada pela URL...

Mas se você tirar a linha $_GET['erro'] e funcionar esta beleza, é que depende se seu register globals está ON ou OFF...

http://www.php.net/register_globals

Compartilhar este post


Link para o post
Compartilhar em outros sites

Surgiu uma nova dúvida.No script:

("<script>window.location='http://seusite.com.br/?erro=$erro'</script>"); 

O "?erro=" é obrigatório né? Não pode ser só "?="?Como eu poderia usar no caso de não ser um erro? Agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim tem que ter o ?erro, senão o GET não vai pegar pela URL, e caso você queira adicionar outra variavel para capturar seria assim:

("<script>window.location='http://seusite.com.br/?erro=$erro&nova_var=$nova_var'</script>");

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.