Ir para conteúdo

Arquivado

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

Gavaldão

retorno JSON

Recommended Posts

Boa tarde amigos.

Preciso de ajuda em uma função JSON para preencher dois inputs vindo do banco de dados.

 

o index

 

 

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>    
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">  
    <title>title</title>
    <script src="src/jquery.js" type="text/javascript"></script>        
    <script type="text/javascript">
	$(document).ready(function(){
		$("#buscar").click(function(){
			
	                $.getJSON(
					'bus_cat.php',
					function( json )
					{
		$("#nocat").val(json.nomecat);
		$("#grucat").val(json.grupocat);
	}
);
	});
	});
    </script>
</head>
    <body>
       <input type="text" name="nocat" id="nocat" value="" size="50">
       <input type="text" name="grucat" id="grucat" value="" size="50">
<input type="button" name="buscar" id="buscar" value="buscar">
    </body>
</html>


e a pagina de busca

bus_cat.php

 

<?php
$con = mysql_connect( 'localhost', 'root', 'xx' ) ;
	mysql_select_db( 'xx', $con );
	
	$arr = array();
$busca = "SELECT nomecat,grupocat FROM categorias WHERE id=1";
 $res = mysql_query($busca);
 while($linha = mysql_fetch_assoc($res)){
	 
	 $arr[] = array(
	 'nocat' =>$linha['nomecat'],
	 'grucat'  =>$linha['grupocat']
 );
 }
 echo( json_encode( $arr ) );

	?>
Acho que a função não esta correa.

Alguem pode me dizer

 

Minha tabela tem somente um registro, que é constantemente atualizado e toda vez que atualiza

tenho de atualizar os inputs.

isso faz parte da categoria de evento de meu calendário de eventos.

Gavaldão

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique como está vindo o json. Adicione um console.log() na variável

function( json ){
    console.log(json);
    $("#nocat").val(json.nomecat);
    $("#grucat").val(json.grupocat);
}

É provável que o json não esteja retornando da forma que você imagina.

Pelo seu código, tenta colocar

$("#nocat").val(json[0].nomecat);
$("#grucat").val(json[0].grupocat);

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo console usando win7 IE10

mostra [Objec Object] [Object{...}]

 

no win 8 IE11 nada mostra

 

acessando direto a pagina bus_cat.php.

imprime a array assim


[{"nocat":"MANUEL","grucat":"SAUDE"}]

porém não preenche os campos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

header('Content-Type: application/json');

echo( json_encode( $arr ) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além de setar o header, como @WBruno citou, seu código não está vindo como você espera.

Primeiro, você precisará pegar o valor do index 0 do array: json[0]

Segundo, no seu código você utiliza .nomecat/.grupocat, porém, o que é retornado no json é .nocat/.grucat.

Ou seja, json[0].nocat e json[0].grucat

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso Rafhael

  1. Eu segui suas observações e incrementei no código, e alterei o retorno e os campos para nomecat e grupocat e a resposta foi FUNÇÃO ESPERADA.
  2. Ai eu lembrei que a tabela que é de uma única linha, eu tinha editado o registro direto pelo banco (PHPMyadmin) e já tinha tido problema em um outro projeto por fazer isso.
  3. Então criei a tabela novamente e inseri pelo modo padrão (script)
    .
    Passou a funcionar.
    Agradeço ai a ajuda de você e do Willian Bruno, apesar de não ter setado como ele indicou.
    Segue o código funcionando.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head> 
     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">    
    <title>JSON</title>    
  <script src="src/jquery.js" type="text/javascript"></script>    
   
    <script type="text/javascript">
	$(document).ready(function() {
		$("#selpac").click(function(){
			$.getJSON(
			'bus_cat.php', function(json){
			console.log(json);	
		$("#catnome").val(json[0].catnome);
		$("#catgrupo").val(json[0].catgrupo);
			});
		});
	});
	</script>
    </head>
    <body>
    <input name="catnome" id="catnome" value="" size="50" />
    <input name="catgrupo" id="catgrupo" value="" size="50" />
    <input type="button" name="selpac" id="selpac" value="buscar" />
    </body></html>
        

bus_cat.php
<?php
	$con = mysql_connect('localhost', 'root', 'gama0202');
	mysql_select_db('topcarecoop', $con);

        $arr = array();
		$sql = "SELECT catcod,catnome,catgrupo,paccat
			FROM categorias WHERE catcod=1 ";
		$query = mysql_query( $sql );
		
		
			while( $dados = mysql_fetch_assoc( $query ) )
			{
				$arr [] = Array(
				
				'catnome' => $dados['catnome'],
				'catgrupo' => $dados['catgrupo']
				);	
			}
		

		echo json_encode( $arr );
?>

Podem dar por encerado. OK.

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.