Ir para conteúdo

Arquivado

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

Dian Carlos

Retornar variáveis dentro de campos em um formulário por AJAX

Recommended Posts

Bom dia galera.

 

Tenho um script que faz a verificação de CNPJ direto no site da Receita Federal e retorna os dados da Pessoa Jurídica. Mas o retorno é todo de uma vez só, e quando dou o echo pra exibir o resultado tem que ter o html dos campos do formulário.

 

    $C['CNPJ'] = trim(utf8_decode($q->item(5)->nodeValue));
    $C['DataAbertura'] = trim(utf8_decode($q->item(8)->nodeValue));
    $C['NomeEmpresarial'] = trim(utf8_decode($q->item(10)->nodeValue));
    $C['NomeFantasia'] = trim(utf8_decode($q->item(12)->nodeValue));
    
echo '
<input name="cnpjRetHdn" type="hidden" value="' . $C["CNPJ"] . '" />
<input name="nomeRetHdn" type="hidden" value="' . $C["NomeEmpresarial"] . '" />
<input class="textField" name="nomeCLRet" id="nomeCLRet" type="text" style="width: 330px" value="' . $C["NomeFantasia"] . '"/>
<input name="enderecoRetHdn" type="hidden" value="' . $C["Logradouro"] . '" />

';

 

 

A requisição é feita por AJAX. Então quero saber se tem como retornar cada uma dessas strings dentro dos campos de meu formulário sem ter que retornar todos os campos dentro do echo.

 

Código do AJAX:

function VerificarCNPJ(){
			
            if($('#cnpj').val() == ''){
				
                alert('Preencha o CNPJ!');
				
            } else if($("#captcha").val() == ''){
				
                alert('Preencha o Captcha!');
				
            } else {
				
                $('#2passo input.sendButton').attr({value: 'Aguarde'});
                $.ajax({
                    type: 'GET',
                    url: 'modules/uAssociados/inc/cnpj.php',
                    cache: false,
                    data: 'CNPJ=' + $('#cnpj').val() + '&Captcha=' + $('#captcha').val(),
                    success: function(msg){
						
                        CarregarCaptcha();
						
                        if(msg == '1'){
							
                            alert('CNPJ ou Captcha Inválidos!');
                            $('#captcha').focus();
                            $('#2passo input.sendButton').attr({value: 'Verificar'});
							
                        } else {
							
                            $("#cnpj").focus();
                            $("#cnpj").val('');
                            $("#captcha").val('');
                            $("#BoxRetorno").fadeIn().html(msg);
                            $("#BoxRetorno2").fadeIn();

                            $("#1passo, #2passo").slideUp();

                        }
                    }
                });
            }
        }
		
		carregaCaptcha();

 

Código da verificação do CNPJ:

<?php

header('Content-Type: text/html; charset=UTF-8', true);

session_start();

require_once 'class.httprequest.php';

$CNPJ = $_REQUEST['CNPJ'];
$Captcha = $_REQUEST['Captcha'];

$Post = array(
    'origem' => 'comprovante',
    'viewstate' => urlencode($_SESSION['viewstate']),
    'cnpj' => $CNPJ,
    'captcha' => $Captcha,
    'captchaAudio' => '',
    'submit1' => 'Consultar',
    'search_type' => 'cnpj'
);

$Request = new HttpRequest('http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/valida.asp', $Post, 'flag=1');
$Retorno = $Request->Retorno;

if (strpos($Retorno, 'FEDERATIVA DO BRASIL') === false) {

    echo '1';
} else {

    $do = new DomDocument();
    @$dom->loadHTML($Retorno);

    $xpath = new DOMXPath($dom);
    $q = $xpath->query('//font[@face="Arial"]');

    $C['CNPJ'] = trim(utf8_decode($q->item(5)->nodeValue));
    $C['DataAbertura'] = trim(utf8_decode($q->item(8)->nodeValue));
    $C['NomeEmpresarial'] = trim(utf8_decode($q->item(10)->nodeValue));
    $C['NomeFantasia'] = trim(utf8_decode($q->item(12)->nodeValue));
    $C['AtivadeEconomicaPrincipal'] = trim(utf8_decode($q->item(14)->nodeValue));
    $C['AtivadeEconomicaSecundaria'] = trim(utf8_decode($q->item(16)->nodeValue));
    $C['NaturezaJuridica'] = trim(utf8_decode($q->item(18)->nodeValue));
    $C['Logradouro'] = trim(utf8_decode($q->item(21)->nodeValue));
    $C['Numero'] = trim(utf8_decode($q->item(23)->nodeValue));
    $C['Complemento'] = trim(utf8_decode($q->item(24)->nodeValue));
    $C['CEP'] = trim(utf8_decode($q->item(27)->nodeValue));
    $C['Bairro'] = trim(utf8_decode($q->item(29)->nodeValue));
    $C['Municipio'] = trim(utf8_decode($q->item(31)->nodeValue));
    $C['Estado'] = trim(utf8_decode($q->item(33)->nodeValue));
    $C['SituacaoCadastral'] = trim(utf8_decode($q->item(35)->nodeValue));
    $C['DataSituacaoCadastral'] = trim(utf8_decode($q->item(37)->nodeValue));

Agradeço a ajuda de todos..

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode retornar um JSON, assim:

echo json_encode( $C );
ai vc lê esse objeto e manda para onde quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido.

 

William, tú é fera!! :D

 

Usei o json_encode();

 

Transformei todas as variáveis em um array:

$c = array(
        'cnpj' => trim(utf8_decode($q->item(5)->nodeValue)),
        'data_abertura' => trim(utf8_decode($q->item(8)->nodeValue)),
        'razao_social' => trim(utf8_decode($q->item(10)->nodeValue)),
        'nome_fantasia' => trim(utf8_decode($q->item(12)->nodeValue)),
        'atividade_principal' => trim(utf8_decode($q->item(14)->nodeValue)),
        'atividade_secundaria' => trim(utf8_decode($q->item(16)->nodeValue)),
        'natureza_juridica' => trim(utf8_decode($q->item(18)->nodeValue)),
        'logradouro' => trim(utf8_decode($q->item(21)->nodeValue)),
        'numero' => trim(utf8_decode($q->item(23)->nodeValue)),
        'complemento' => trim(utf8_decode($q->item(24)->nodeValue)),
        'cep' => trim(utf8_decode($q->item(27)->nodeValue)),
        'bairro' => trim(utf8_decode($q->item(29)->nodeValue)),
        'municipio' => trim(utf8_decode($q->item(31)->nodeValue)),
        'estado' => trim(utf8_decode($q->item(33)->nodeValue)),
        'situacao_cadastral' => trim(utf8_decode($q->item(35)->nodeValue)),
        'data_situacao_cadastral' => trim(utf8_decode($q->item(37)->nodeValue))
    );

 

Depois no jQuery, com o retorno, coloquei cada informação no campo certo:

 

 

$.ajax({
 type: 'GET',
 url: 'modules/uAssociados/inc/cnpj.php',
 cache: false,
 data: 'CNPJ=' + $('input#cnpj').val() + '&Captcha=' + $('input#input_captcha').val(),
 dataType: 'json',
 success: function(data){
												
  if(data == '1'){
							
	 carregaCaptcha();
							
          SA_alertOpen('CNPJ ou CAPTCHA incorretos', 'Verifique se tudo foi digitado corretamente.');
							
           $('input#input_captcha').focus();
            $('div.fieldArea .captcha input.extButton ').attr({value: 'Verificar CNPJ'});
							
   } else {
														
$('div#captcha').fadeOut();
							
$('input#cnpj').val(data.cnpj); /*Aqui exibo as células do array	*/						   $('input#nome_fantasia').val(data.nome_fantasia);							$('input#razao_social').val(data.razao_social);
							
                        }
                    }
                });

 

Então é isso. Muito obrigado William, agora minha validação CNPJ está completa.

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.