Ir para conteúdo
Fórum Script Brasil
  • 0

Php + ajax + mysql duvida


Lis

Pergunta

Boa tarde a todos,

Não sou programadora por isso a duvida, pode parecer fácil pra uns mas eu não consigo resolver. Eu estou fazendo um formulário simples em php cujos os dados serão inseridos num banco mysql. Eu preciso que dois inputs sejam preenchidos com valores que serão buscados no banco de dados pela chave que será inserida num terceiro input. Eu busquei na internet e encontrei um script que funciona certinho quando testo, mas quando vou adaptar para o meu exemplo (que sera inserido depois no form completo) ele fica aparecendo "Carregando" mas não retorna nada. Coloquei uma query bem simples pra teste, está escrita corretamente e eu não sei o que esta acontecendo :( HALP ME

Script que busquei na net

<html>
<head>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
	<script type="text/javascript">
	$(document).ready(function(){
		$("input[name='nome']").blur(function(){
			var endereco = $("input[name='endereco']");
			var telefone = $("input[name='telefone']");
 
			$( endereco ).val('Carregando...');
			$( telefone ).val('Carregando...');
 
				$.getJSON(
					'function.php',
					{ nome: $( this ).val() },
					function( json )
					{
						$( endereco ).val( json.endereco );
						$( telefone ).val( json.telefone );
					}
				);
		});
	});
	</script>
</head>
<body>
	<form action="" method="post">
		<label>Nome: <input type="text" name="nome" /></label>
		<label>Endereço: <input name="endereco" type="text" disabled="disabled" value="" /></label>
		<label>Telefone: <input type="text" name="telefone" value="" /></label>
	</form>
</body>
</html>
<?php
	/**
	 * função que devolve em formato JSON os dados do cliente
	 */
	function retorna( $nome, $db )
	{
		$sql = "SELECT `id`, `nome`, `telefone`, `endereco` FROM `cliente` WHERE `nome` = '{$nome}' ";
 
		$query = $db->query( $sql );
 
		$arr = Array();
		if( $query->num_rows )
		{
			while( $dados = $query->fetch_object() )
			{
				$arr['endereco'] = $dados->endereco;
				$arr['telefone'] = $dados->telefone;
			}
		}
		else
			$arr['endereco'] = 'não encontrado';
 
		return json_encode( $arr );
	}
 
/* só se for enviado o parâmetro, que devolve os dados */
if( isset($_GET['nome']) )
{
	$db = new mysqli('localhost', 'root', '', 'test');
	echo retorna( filter ( $_GET['nome'] ), $db );
}
 
function filter( $var ){
	return $var;//a implementação desta, fica a cargo do leitor
}

Script adaptado

<html>
<head>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
	<script type="text/javascript">
	 	$(document).ready(function(){
		$("input[name='idpdv']").blur(function(){
			var regional = $("input[name='regional']");
 
			$( regional ).val('Carregando...');
 
				$.getJSON(
					'function.php',
					{ idpdv: $( this ).val() },
					function( json )
					{
						$( regional ).val( json.regional );
					}
				);
		});
	});
	</script>
</head>
<body>
	<form action="" method="post">
		<label>Nome: <input type="text" name="idpdv" /></label>
		<label>Regional: <input name="regional" type="text"  value="" /></label>

	</form>
</body>
</html>
<?php

	function retorna( $idpdv, $db )
	{
		$sql = "select `Regional` FROM tbl_regional WHERE CodRegional = '{$idpdv}' ";
 
		$query = $db->query( $sql );
 
		$arr = Array();
		if( $query->num_rows )
		{
			while( $dados = $query->fetch_object() )
			{
				$arr['Regional'] = $dados->regional;
			}
		}
		else
			$arr['Regional'] = 'não encontrado';
 
		return json_encode( $arr );
	}
 
/* só se for enviado o parâmetro, que devolve os dados */
if( isset($_GET['idpdv']) )
{
	$db = new mysqli('localhost', 'root', '', 'test');
	echo retorna( filter ( $_GET['idpdv'] ), $db );
}
 
function filter( $var ){
	return $var;//a implementação desta, fica a cargo do leitor
}

Se alguém puder me ajudar a enxergar o erro, ficarei eternamente agradecida

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá,

Veja se o problema ocorre por esse motivo:

Na linha 16 do primeiro script adaptado você usa $( regional ).val( json.regional ); com a letra r do regional minuscula.

Na linha 14 e 18 do segundo script adaptado você usa $arr['Regional'] com o R do regional maiúsculo.

Tente inserir o regional com r minusculo no segundo script adaptado nas linhas 14 e 18.

Salve e execute novamente.

Caso não resolva, confira sua query SQL, nome de tabela e colunas também.

Espero ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Olá,

Veja se o problema ocorre por esse motivo:

Na linha 16 do primeiro script adaptado você usa $( regional ).val( json.regional ); com a letra r do regional minuscula.

Na linha 14 e 18 do segundo script adaptado você usa $arr['Regional'] com o R do regional maiúsculo.

Tente inserir o regional com r minusculo no segundo script adaptado nas linhas 14 e 18.

Salve e execute novamente.

Caso não resolva, confira sua query SQL, nome de tabela e colunas também.

Espero ajudar.

Obrigada pela resposta :)

Mas eu coloquei assim pelo seguinte: Meu input esta nomeado como "regional" e no banco o campo esta com letra maiúscula, vai saber porque. A query ta funcionando direitinho, ão sei o que acontece :(

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...