gilmarfp 0 Denunciar post Postado Outubro 5, 2009 Olá pessoal, sou novo em Php e estou tentando desenvolver uma pagina de pedido, será algo mais ou menos assim: quano eu selecionar no menu select o nome do cliente, os outros campos de texto no formulário serão preenchidos como o endereço, tel, bairro, cidade do cliente selecionado, será que poderiam me ajudar? se puder me mandar um exemplo ficarei grato. Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Outubro 5, 2009 Ajax Nesse fórum te ajudarão melhor Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 5, 2009 O Ajax só vai fazer o preenchimento sem o refresh. Eu fiz este exemplo bem rapidinho, mas acho que dá pra entender a lógica. <form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']?>" > <select name="cliente"> <option value="id">Nome do Cliente</option> <?php // aqui dentro você coloca o código para preencher os dados do cliente ?> </select> <?php if (!isset($_POST['cliente'])) { echo '<input type="submit" name="buscar" value="Buscar Cliente"></form>'; } else { $sql = 'SELECT * FROM tabela WHERE id_cliente = '.$_POST['cliente']; $qry = mysql_query($sql); $row = mysql_fetch_assoc($qry); // aqui é onde vai imprimir o restante dos dados do cliente echo '<input type="text" name="Nome" value="'.$row['nome'].'"> <input type="submit" name="enviar" value="Enviar"></form>'; } ?> Na primeira execução, ele vai exibir somente o select. Quando selecionar e clicar em buscar, vai enviar o dado daquele select para a mesma página, que vai imprimir os campos com o as informações do cliente. Ali eu fiz algumas coisas que não se faz, tipo não verificar se existe $row['nome'], jogar o valor do $_POST direto na query, mas é só pra você ter uma idéia. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
vinicvo 4 Denunciar post Postado Outubro 6, 2009 Bom, cara, primeiramente você vai precisar de um banco de dados. Recomendo o MYSQL porque é mais adaptado ao PHP. Depois, nesse banco você cria uma tabela chamada "clientes". Ela deve conter o campo ID e esse campo deve ser único para cada pessoa. O mysql insere automaticamente um id diferente pra cada cliente. Depois, você pode colocar quantos campos quiser, tipo endereço, bairro, telefone, mail, tudo o que você quiser. Após isso você precisa ir na página php e fazer uma consulta. Ou seja, você seleciona o cliente do menu e então ele preenche de acordo com o id. Por exemplo: Temos um menu com 3 clientes. Vinícius - ID= 3 César - ID= 102 Maria - ID= 41 Pra qualquer cliente que você selecionar ele vai buscar as informações e preencher automaticamente a página, a partir dos dados do banco mysql. Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 6, 2009 Valeu Carlos, DEUS te abençoe! Vou testar aqui pra ver se dar certo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 6, 2009 ele vai buscar as informações e preencher automaticamente a página, a partir dos dados do banco mysql. Como assim? Automaticamente? Sem usar Ajax, não rola. Veja que no meu exemplo, tem que estar tudo na mesma página e só funciona clicando no botão. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 6, 2009 Aqui, eu desenvolvi um exemplo desse script: http://forum.imasters.com.br/index.php?/topic/361836-carregar-automaticamente-o-formulario/page__view__findpost__p__1382788 Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 6, 2009 Carlos Tem como colocar um exemplo do codigo pra exibir o nome do cliente?é que eu usei o dream weaver pra fazer os nomes dos clientes aparecerem no select e o mesmo gera um codigo muito grande que não consegui inserir naquele espaço reservado. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 6, 2009 No exemplo ali de cima já imprime o nome. Veja. echo '<input type="text" name="Nome" value="'.$row['nome'].'"> Se você quiser fazer isto usando as ferramentas do Dreamweaver, posso mover para o fórum correspondente, que o pessoal de lá vai poder ajudar melhor. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 6, 2009 dei uma olhada no seu exemplo funcionando, e é bem legal, porem copiei o código e fiz a tabela segundo o sql que estava disponivel porem no meu computador não fucionou, será que fiz algo de errado? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 6, 2009 É possível. Como você fez? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 6, 2009 Aqui, eu desenvolvi um exemplo desse script: http://forum.imasters.com.br/index.php?/topic/361836-carregar-automaticamente-o-formulario/page__view__findpost__p__1382788 segui o exemplo acima porem não consegui fazer funcionar, ele até aparece os dois cadastros,porem não preenche os outros 2 campos fica aparecendo carregando e não sai disso Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 6, 2009 Como está o seu código? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 6, 2009 Como está o seu código? Carlos Eduardo fiz igual ao exemplo do nosso amigo acima,era exatamente isso que eu queria, está funcionando em http://www.wbruno.com.br/scripts/combo-preenche-input.php porem segui os exemplos e aqui não funcionou criei uma pagina com o nome de function.php <?php $con = mysql_connect('localhost', 'root', ''); mysql_select_db('banco', $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'] ); } ?> e outra com o nome pagina.php <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 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> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 6, 2009 segui o exemplo acima porem não consegui fazer funcionar, ele até aparece os dois cadastros,porem não preenche os outros 2 campos fica aparecendo carregando e não sai disso Que 'outros dos 2 campos'?você não modificou nada do meu código original. Criou o banco de dados? as tabelas estão lá ? Acesse diretamente a página: function.inc.php?idCliente=1 e veja se aparece algum erro, ou o retorno jSON como esperado. Dessa forma: http://www.wbruno.com.br/scripts/combo-preenche-input-function.php?idCliente=1 você lembrou de fazer download da biblioteca jQuery? Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 6, 2009 na verdade não me expressei direito usei o seu código, baixei o jquery, as tabelas fiz tudo segundo o seu exemplo , porém aqui não funcionou, eu seleciono o nome do cliente e não preenche os campos endereço e telefone Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 6, 2009 Faça o procedimento abaixo: Acesse diretamente a página: function.inc.php?idCliente=1 e veja se aparece algum erro, ou o retorno jSON como esperado. Dessa forma: http://www.wbruno.com.br/scripts/combo-preenche-input-function.php?idCliente=1 Informe o resultado.Deverá aparecer o objeto jSON ou um erros do php. Reveja a 'instalação', pois o script funciona. Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 6, 2009 apareceu esta mensagem: Notice: Undefined variable: json in C:\wamp\www\projeto teste\function.php on line 39 [{endereco: 'Rua dos Bobos, n 0', telefone: '6666-6669'}] Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 6, 2009 Tá, troca esse bloco aqui: //$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 .= ';'; por: $json = ' ['; if( mysql_num_rows( $query ) > 0 ) { $dados = mysql_fetch_assoc( $query ); $json .= "{endereco: '{$dados['endereco']}', telefone: '{$dados['telefone']}'}"; } else $json = 'endereco: não encontrado'; $json .= ']'; Compartilhar este post Link para o post Compartilhar em outros sites
gilmarfp 0 Denunciar post Postado Outubro 7, 2009 Deu certo! Obrigado a todos, esse forum é demais, me ajudou bastante. Um abraço a todos Compartilhar este post Link para o post Compartilhar em outros sites