Jump to content
Fórum Script Brasil
  • 0

Php + ajax + mysql duvida


Lis
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...