Ir ao conteúdo
  • Cadastre-se
denismartos

RESOLVIDO Problemas com JSON.parse Jquery

Recommended Posts

Boa Noite pessoal,

 

Estou trabalhando em uma aplicação e preciso trazer dados com JSON, montei uma requisição ajax porém ocorre erro quando vou fazer o JSON.parse, segue o código !

 

Essa é a classe que traz o JSON do banco:

public function consultaProdutoJson($cod_produto) {				$this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);		if (!$this->db_connection->set_charset("utf8")) {        	$this->errors[] = $this->db_connection->error;        }		$sql = "SELECT P.id_produto, P.cod_produto, P.nome_produto, P.preco_produto, P.quantidade_produto, E.tipo_embalagem, S.tipo_segmento, F.nome_fornecedor 		FROM produtos P, segmento S, embalagem E, fornecedor F 		WHERE P.id_segmento = S.id_segmento 		AND P.id_embalagem = E.id_embalagem 		AND P.id_fornecedor = F.id_fornecedor		AND P.cod_produto = '" . $cod_produto . "'		;";		$result = $this->db_connection->query($sql);				$arr = Array();             if( $result->num_rows )             {                 while( $dados = $result->fetch_object() )                 {                     $arr['cod_produto'] = $dados->cod_produto;					 $arr['nome_produto'] = $dados->nome_produto;                     $arr['preco_produto'] = $dados->preco_produto;					 $arr['tipo_embalagem'] = $dados->tipo_embalagem;                 }             }				return json_encode($arr);	}

Esse é meu arquivo php que chama o mtodo da classe e escreve o JSON na tela:

<?phpini_set('display_errors', 1);ini_set('log_errors', 1);require_once("../config/db.php");require_once("../classes/Login.php");require_once("../classes/Produto.php");$login = new Login();if ($login->isUserLoggedIn() == true) {	$cod = $_GET["codigo"];    $produto = new Produto();	$result = $produto->consultaProdutoJson($cod);	echo $result;} else {    include("../views/not_logged_in.php");}?>

E esse é minha pagina que vai fazer a requisição:

<!doctype HTML><body>	<input id="codProduto" type="text">    <input id="json" type="text"><script src="http://code.jquery.com/jquery-1.9.1.min.js"></script><script type="text/javascript">$("#codProduto").focusout(function(){	var cod = $("#codProduto").val();	$.ajax({      type: 'GET',      url: 'http://www.dmquimica.com.br/aDM/json/produtosJson.php',      data: {codigo:cod},      success: function(data) {      	var y = JSON.parse(data);		alert(y.nome_produto);	  }	});});</script></body></html>

Ocorre tudo certo o meu php que retorna o JSON imprimi isso tela:

{"cod_produto":"0001-00","nome_produto":"Estopa de 1\u00aa","preco_produto":"7.30","tipo_embalagem":"Pacote 2 kg"}

E no meu arquivo onde faço a requisição ele da o erro: Uncaught SyntaxError: Unexpected token

 

porém quando eu mando ele imprimir tela só o data que foi o que ele pegou da requisição da certo porém vem todo o json e não consigo transofrmar o JSON em objeto.

 

Bom quem puder ajudar, agradeço deis de já !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que é porque a funçãi $.ajax() foi alterada desde a ultima versão do jQuery.

 

tenta fazer deste modo:

$(document).ready(function() {	$("#codProduto").focusout(function(){		var cod = $("#codProduto").val();		$.ajax({	      type: 'GET',	      url: 'http://www.dmquimica.com.br/aDM/json/produtosJson.php',	      data: {codigo:cod}	      }).done(function(data) {	    	    var y = JSON.parse(data);	    	    alert(y.nome_produto);	      })	  });});

Troque a versão do jquery para a 2.1.0 .. pois a função success foi substituída por .done().. assim como o error foi substituído por fail()

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz ocmo você falou mais nem a requisição ele conseguia fazer, após inúmeras, diversas e enormes tentativas hehehe...Ontem a noite desisti e hoje de manha sentei no pc e em 5 minutos consegui, da uma olhada no código como ficou, usei a função $getJson.

$("#codProduto").focusout(function(){	var cod = $("#codProduto").val();	$.getJSON("http://www.dmquimica.com.br/aDM/json/json.php",{codigo:cod}, function(info){    	var titulo = info.nome_produto;		alert(titulo);    });});

Muito obrigado a todos que leram e principalmente a quem tomou um pouco de seu tempo tentando ajudar !

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente esqueci que existia uma função específica para o json. também notei que no meu post, esqueci que deveria adicionar a linha: dataType: 'json'    rsrsrs sem isso ele não faria mesmo a requisição. Desculpe pela minha falha.

 

Legal que conseguiu. Boa sorte no seu projeto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×