Ir para conteúdo

POWERED BY:

Arquivado

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

SAVI

Preenchimento Automatico

Recommended Posts

Bom dia.

Pesquisei muito neste em outros foruns, porem não encontrei exatamente a ajuda que preciso, a duvida é a seguinte:

Tenho um formulário de atendimento com os seguintes campos:

CAMPO1 - "NOME" (COMBO BOX QUE BUSCA O CADASTRO DE NOMES A PARTIR DE UMA TABELA cliente NO MYSQL)

CAMPO2 - "ENDEREÇO" (INPUT TIPO TEXT)

CAMPO3 - "TELEFONE" (INPUT TIPO TEXT)

 

É o seguinte: Gostaria de selecionar o NOME do cliente no combo e que automaticamente os campos de ENDEREÇO e o TELEFONE fossem preenchidos trazendo os dados da tabela cliente, encontrei diversas sugestões em AJAX que é o que estou tentando aplicar porém nos exemplos encontrados o preenchimento é feito de combo para combo, como sou praticamente cru em ajax, estou pesquisando e estudando as grandes novidades que existem nesta linguagem e fico cada vez mais maravilhado com o que descubro, porém este projeto esta com prazo de entrega extremamente apertado e estou com dificuldades de adaptar esses códigos, será que poderiam me dar uma sugestão?

 

Desde meu muito obrigado.

 

Luiz Sergio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tô estudando AJAX com jQuery.. dá uma olhada.. você vai precisar do jQuery:

http://jquery.com/

sql.sql

--
-- Estrutura da tabela `cliente`
--

CREATE TABLE IF NOT EXISTS `cliente` (
  `idCliente` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(100) NOT NULL,
  `endereco` varchar(100) NOT NULL,
  `telefone` varchar(20) NOT NULL,
  PRIMARY KEY (`idCliente`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Extraindo dados da tabela `cliente`
--

INSERT INTO `cliente` (`idCliente`, `nome`, `endereco`, `telefone`) VALUES
(1, 'Wiliam ', 'Rua dos Bobos, n 0', '6666-6669'),
(2, 'Bruno', 'Avenida Ajax de Cloro', '9999-9996');

pagina.html

<html>
<head>
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript">
	$(document).ready(function(){
		$("select[name='nome']").change(function(){
			$("input[name='endereco']").val('Carregando...');
			$("input[name='telefone']").val('Carregando...');

			$.getJSON(
				'function.php',
				{idCliente: $(this).val()},
				function(data){
					$.each(data, function(i, obj){
						$("input[name='endereco']").val(obj.endereco);
						$("input[name='telefone']").val(obj.telefone);
					})
				});
		});
	});
	</script>
</head>
<body>
	<form action="" method="post">
		<label>Nome: <select name="nome">
			<option value="">--</option>
<?php
	//http://www.wbruno.com.br/blog/?p=12
	include('function.php');
	echo montaSelect();
?>
		</select></label>
		<label>Endereço: <input type="text" name="endereco" value="" /></label>
		<label>Telefone: <input type="text" name="telefone" value="" /></label>

	</form>
</body>
</html>

function.php

<?php
	$con = mysql_connect('localhost', 'root', '123');
	mysql_select_db('ajax', $con);


	/**
	 * função que retorna o select
	 */
	function montaSelect()
	{
		$sql = "SELECT `idCliente`, `nome` FROM `cliente` ";
		$query = mysql_query( $sql );
		
		if( mysql_num_rows( $query ) > 0 )
		{
			while( $dados = mysql_fetch_assoc( $query ) )
			{
				$opt .= '<option value="'.$dados['idCliente'].'">'.$dados['nome'].'</option>';
			}
		}
		else
			$opt = '<option value="0">Nenhum cliente cadastrado</option>';
	
		return $opt;
	}
	
	/**
	 * função que devolve em formato JSON os dados do cliente
	 */
	function retorna( $id=null )
	{
		$id = (int)$id;
		
		$sql = "SELECT * FROM `cliente` ";
		if( $id != null )
			$sql .= "WHERE `idCliente` = {$id} ";
		$query = mysql_query( $sql );
	
		//$json = 'var dados = ';
		$json .= ' [';	
		if( mysql_num_rows( $query ) > 0 )
		{
			while( $dados = mysql_fetch_assoc( $query ) )
			{
				$json .= "{endereco: '{$dados['endereco']}', telefone: '{$dados['telefone']}'}";;
			}
		}
		else
			$json = 'endereco: não encontrado';
			
		$json .= ']';
		//$jston .= ';';
		
		return $json;
	}
	
	
/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idCliente']) )
{
	echo retorna( $_GET['idCliente'] );
}
?>
Ficou assim em funcionamento:

http://www.wbruno.com.br/scripts/combo-preenche-input.php

Usei php, e banco de dados MySQL.

Mas você conseguindo gerar o objeto JSON com a tua linguagem server-side, o script jquery que postei, se encarrega do resto do trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo colega, é perfeito esse script, funciona muito bem e ajuda muito, parabéns.

 

Só uma dívida que eu preciso resover pra ele ficar pefeito para minha aplicação, é assim, eu preciso que ao invés de carregar um dos inputs ele carrege o resultado em um <textarea>, mas se coloco no lugar do input o textarea ele fica em branco, não carrega o resultado.

Tem uma ídeia pra me ajudar a resolver isso? como eu vou fazer pra setar o resultado pro textarea.

 

Ouvi falar que o ajax interpreta o textarea como input, mas isso não está acontecendo...

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostra como você fez.

Quem vai manipular o input ou o textarea é o Javascript que é a linguagem chave por trás de tudo...

 

podemos falar que 'ajax' é apenas a metodologia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Debug o script.

acesse diretamente o arquivo:

 

localhost/function.php e veja se aparecem erros php, ou o esperado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo William agradeço a atenção.

 

O problema era na versão o jquery.

Para quem tiver problema com este script use a versão 1.3.2 do jquery que irá funcionar.

 

Agora outra dúvida.

Possuo campos em minha tabela com valores booleanos, teria como alterar os checkbox automaticamente desmarcando-o para valores com 0 e marcando-o para valores com 1?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, cria um novo tópico para essa dúvida.. ficará mais fácil, pois estamos fugindo do escopo deste tópco.

 

 

dispare uma requisição no onclick do checkbox, que irá no servidor, com o valor, 'dizendo se ele foi marcado ou desmarcado', para rodar um UPDATE no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Giovani Velasques cara, não 'invada' o topico com outras duvidas.

 

acesse o arquivo de function diretamente..

 

localhost/function.php?idCliente=2

 

você vai ver um erro php... arrume ele.

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.