25/05/2009 - 12:19 > 19.809 Visualizações > 227 comentários
Salve Amigos do Mxmasters, David CHC, em mais uma video aula de PHP. Nessa video aula iremos aprender a fazer um combo dinâmico, alimentando o select com estados e mostrando dinamicamente com ajax, usando jquery, as cidades de acordo com estado. E de quebra vocês irei indicar um arquivo sql com mais de 9715 registros com cidades e estados.
Tenham uma boa Video aula.

Trabalha como free-lance em desenvolvimentos de sites,desde o projeto completo à parte do projeto. Tem conhecimentos em Padrões Web( xhtml, css), javascript( jquery), php, mysql , (iniciando no python e ruby também), photoshop, fireworks, corel draw, enfim, um eterno aprendiz...
Desenvolvido por David CHC e Felipe Cardozo
25/05/09 às 12:20
Sensacional!
Vai ajudar muita gente!
25/05/09 às 12:37
Hum… vou ver a video aula pra ver se ficou bom
huauhauhuha
25/05/09 às 13:14
Ficou boa mesmo… parabens mano muito bom!!!
mxmasters rulando na net
25/05/09 às 14:29
Salve salve,David show de bola, muito bom mesmmo.
Vc, e o novo gurú php do mx-masters comunity-
Brigado vc, muito brigado.
Parabens pra ttodus e fiquem com deus.
25/05/09 às 15:10
Realmente muito bom! Vou utilizar em todos os meus formulários de cadastro. Vlw mesmo!
25/05/09 às 15:52
Muito Boa!!!
25/05/09 às 16:38
boa tarde.. mas o video naum qer aparecer….
25/05/09 às 17:04
Sem palavras…
Show, show, show show, shoooowwwwww!!!!!!!
25/05/09 às 22:52
Putz… Não tenho nem o que comentar… muito show.
Sem duvida nenhuma esse é um bom professor ou melhor ótimo… Parabens.
Ótimo conteúdo, explicação show.
26/05/09 às 1:23
Video Aula show de bola, vai ajudar muita gente viu.
Parabens!!!
26/05/09 às 2:28
Muito bom. Gostei da explicação, bem caprichado o vídeo. Parabéns David, excelente aula. Brigaduuuu
26/05/09 às 11:17
SHOW DE BOLA MAN, VAI AJUDAR A MUITAS PESSOAS POR AI!!!!!!
MESMO SEM TER AUDIO NO PC DO TRAMPO EU COMSEGUI INTENDER…..
27/05/09 às 11:58
Aula show, gosto cada vez mais do conteúdo MX, parabéns David, o problema “ou melhor a solução” é que estou ficando viciado no MXMASTERS. Parabéns a todos da equipe.
27/05/09 às 20:10
Grande David
Parabens pela video, estava realmente excelente, olha eu realmente não sabia que o jquery ajudava tanto assim na programação, fiquei surpreso em ver isso.
Bom agora vc poderia mostrar algo como fazer para que ao digitar o cep os campos relacionados sejam pr4eenchidos automaticamente, fica como uma ideia pois tem muita gente que deseja aprender isso inclusive eu.
Abraços
3/06/09 às 0:11
Você em vez de utilizar a função htmlentities você poderia ter usado o código html de a com til q é: Não
O resto será muito útil para mim.
Inté
3/06/09 às 9:25
Roberto poderia escrever HTML Entities, mas o q a função faz é isso, transformar caracteres especial em seu codigo referente. Eu decidi fazer dessa maneira, pq se vc estiver usando banco de dados, e tivesse problema com nome vindo do banco de dados, não daria pra apenas escrever, por isso eu usei htmlentities pra já prevenir possiveis erros q possam ocorrer.
3/06/09 às 15:16
não deu certo eu seleciono o estado mais não aparece a cidade pra eu selecionar!
3/06/09 às 20:54
Marcus dá uma olhada no código postado no forum, veja na descrição da video aula, e clique em Visualizar script da vídeo aulas. Confira o código e veja se vc fez da mesma maneira.
9/06/09 às 19:13
Muito fera o video, ta otimo, mas gostaria de saber se tem como eu replica-la em 4 por exemplo… Alguém ae me da uma luz!!
11/06/09 às 0:47
Por que selecionar todos os campos da tabela ‘estados’/'cidades’ se vc só usou efetivamente a ‘id’ e o ‘nome’? isso aumenta o tempo de execução do código. É uma boa prática você selecionar somente o que vai usar.
Também não é uma boa prática inserir html dentro do PHP. Pra solucionar o caso do til bastava usar a entidade ‘ã’, mas a função ‘htmlentities’ é melhor de uma maneira geral, porque faz vc nao se preocupar com esse detalhe.
Legal pra caramba o tutorial, só acho uma pena que tenha usado o Dreamweaver, que formata pessimamente o código (principalmente o jQuery).
Abraços
11/06/09 às 14:30
Francisco Leal, vc vai usar o mesmo codigo usado com jquery, basta trocar o select’s, e os arquivos q farão a busca
Tutorial City, sobre a seleção dos campos , isso verdade, eu poderia apenas selecionar os campos q iria usar, mas fiz dessa maneira pra ficar facil das pessoas fazerem, mas com certeza pra um melhor desempenho, a sua sugestão é perfeita. Sobre o htmlentities, já tinha falado em um comentário acima, fiz com ele pra previnir não aquela parte q deu problema, mas problemas vindo do banco de dados, q é bem comum ocorrer.
Não tenho problemas com Dreamweaver, eu uso ele como editor de código. Com a maioria q frequenta o mxmasters usa, eu adotei ele pra fazer as video aulas. Eu uso para o PHP o Zend Studio, e as vezes, uso PHP Designer e tbm o NotePad++
O público maior do mxmasters, é quem tá começando, então, usar certas convenções pode atrapalhar o aprendizado das pessoas. O intuito da video aula é incentivar a pessoa a buscar mais. A video aula não é o fim do aprendizado, e sim o começo. E a partir dai, buscarem melhores práticas.
Vlw pelo comentário, tendo outras sugestões e observações, é só postar.
12/06/09 às 12:55
@David CHC
Eu tenho certeza absoluta que o Dreamweaver é uma IDE fantástica, mas eu brigo muito com vários iniciantes que tentam usa-la. É mais fácil para um iniciante criar um site usando o Dw? a resposta é ‘depende’. Depende se ele quer um site bem feito ou não. Já reparei que o Dw esconde muitos erros, que para iniciantes é uma péssima noticia, já que é exatamente nesses erros que eles mais vão aprender. A curva de aprendizagem de HTML aumenta exponencialmente quando se usa a interface gráfica do Dw(que é o que geralmente acontece).
Agora eu queria falar sobre algo que não mencionei anteriormente. Você baixou o jQuery para a sua máquina. Eu questiono se essa é a melhor solução, sendo que esse framework já está hospedado no Google CDN. Quais as vantagens de aproveitar essa hospedagem? Recomendo a leitura do artigo encontrado no endereço abaixo, que fala exatamente sobre isso.
http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/
Abraços
15/06/09 às 16:38
Tutorial City, nesse requisito concordo com vc, ele apresenta muitas falhas na renderização e ainda inclui o codigo desnecessário, e isso é prejudicial pra quem tá começando, no meu caso não interfere em nenhum aspectos pq eu crio os meus códigos, e nas minhas video aulas são sempre na parte code, e mostrando como fazer e porque fazer, pra mim do dreaweaver é uma grande e pesada, rs, editor de códigos.
E intessante esse link, já tinha lido algo tbm a respeito, mas como falei o intuito da video aula é mostrar maneiras de fazer algo. Eu não quero ser dono da verdade, pra alguém falar, eu assistir a video aula no mxmasters do David, e se ele falou q um jeito vai ser desse jeito, quero apenas incentivar as pessoas a necessidade pesquisar alternativas, e sugeri-las (com vc tá fazendo), fico muito feliz com essa interação, e sugestões pra melhorar as video aulas, os códigos, assim todos ganham.
abrs
15/06/09 às 20:30
Olá David,
primeiramente quero parabenizá-lo por este tutorial, vc realmente tenha a manha total!
Bom aproveitando da sua boa vontade, eu preciso de sua ajuda. Li seu tutorial sobre COMBO DINAMICO e o adaptei ao meu site. Porém eu gostaria de saber se é possivel enviar dois posts no código de javascript que chama o arquivo “cidades.php”?
Se sim, oq devo fazer? O post que quero enviar vai ser com um valor de ECHO de PHP, então em que parte da sentença devo colocá-lo?
OBRIGADO
17/06/09 às 15:14
Alysson Lima, já respondi pra o seu email a sua duvida, e acho q vc já conseguiu resolver o problema, qualquer coisa post no forum.
19/06/09 às 0:12
Eu juro que tentei mas sou novo no assunto(php, java e etc), não consigo de jeito algum fazer 4 combos, uma depender da outra atraves do banco de dados mysql, muito dificil, vejo seu video todos os dias, minha página incial eh o manual do php, mas tá dificil mesmo, alguem por favor me ajude! e mais uma vez parabéns pelos videos, o da senha e login eu fiz, ta fera, decorei ele todo e ainda ensinei um amigo, até mais…
19/06/09 às 12:57
David acompanho as sua video aulas no mx e tenho aprendido bastante, mas gostaria que vc fizesse uma video aula explicando como validar um campo com busca no banco de dados (exemplo: tenho um campo patrimonio e quando esse campo perder o foco quero que ele me informe se o numero já existe no banco de dados.) valew e essa video aula sua da combo me ajudou muito valewwww
20/06/09 às 21:11
Por favor cancele meu ultimo post, eu consegui obrigado!
23/06/09 às 9:40
vLEWS
Obrigado por dividir conhecimento.
25/06/09 às 10:04
Fiquei impressionado com a didática do instrutor,
Ótimo exemplo para quem esta começando a entender o jquery, mas aqui não funcionou no chrome2.0 e nem no firefox3.0.
Alguma dica para funcionar em todos os browser’s ??
25/06/09 às 10:25
Funcionou sim , era um erro de sintaxe minha,
Foi mausss…hehe
O artigo mais funcional que ja vi sobre o assunto
mostrou de uma maneira MUITO didática mesmo
29/06/09 às 14:46
Muito legal esse tutorial David, vc está de parabéns.
Consegui fazer o mesmo sem problemas, mas, como faço na hora de editar o formulário, ou seja, fazer com que os dados já gravados no banco sejam exibidos em seus devidos campos para que possam ser alterados.
Parabéns e obrigado.
1/07/09 às 3:10
Show de bola!
Só uma dúvida! Essa dúvida vai adiantar muita gente!
Gostaria de saber como retornar mais valores ao invés de um só? Por exemplo!
Ali vc pega “valor” que alimenta o select. Como pegar mais de um?
Estou fazendo um teste com input e gostaria de estar alimentando mais de um campo.
Ex:
3/07/09 às 17:52
@Rodrigo Lima, vc pode usar o selected=”selected” para deixar marcado a opção q foi selecionado. Na hora de exibir, vc verifica o qual é o valor no banco de dados, depois vc faz um if, verificando se o valor vindo do banco de dados, corresponde ao valor do usuarios, ai vc coloca o selected no option
3/07/09 às 18:16
@Leonardo, vc usará o mesmo script do jquery, apenas mudará a opção q vai pegar o select, e tbm qual select será acrescentado o valor, e tbm o arquivo q será feito a pesquisa para alimentar esse select
9/07/09 às 21:42
David CHC
Muito legal os seus vídeos, gostaria de saber se há alguma possibilidade de você juntamente com a MX Masters disponibilizarem um DVD-Video Aulas para venda de PHP/MYSQL/JQuery garanto que seria muito produtivo e didático.
10/07/09 às 8:15
@José Leonardo, terá um curso em DVD sobre PHP. Estou adiantando trabalhos para pode começar a gravar.
10/07/09 às 20:20
David CHC
Muito bom espero uma grande cobertura do site a respeito deste novo DVD, parabéns novamente pelas vídeos-aula
13/07/09 às 13:26
Muito bom o tutorial! Parabéns.
Agora gostaria de saber como eu faria para fazer um combobox dinâmico q a depender da opção q fosse selecionada nele aparecesse um novo campo no formulário. Por exemplo.. um campo q se chamasse “Tipo:” com valores “Básico”, “Intermediário”, e a depender do q a pessoa selecionasse carregasse logo abaixo alguns ou um campo q fosse relacionado ao tipo q ele escolhesse..
Tem como vc explicar via email ou isso já eh assunto para uma outra vídeo-aula?? =)
De qualquer modo desde já agradeço!!
Abraçosss
13/07/09 às 15:47
@Danillo, da uma olhada na video aula sistema de uploads, q ensino a criar com javascript campos adicionais, talvez isso te ajude.
18/07/09 às 3:08
Felipe, maravilhoso!!!! Gostaria q me ajudasse em utilizar este combo em uma alteração, ou seja, para resgatar os valores selecionado pelo usuario e disponibilizar a sua alteração.
18/07/09 às 9:06
@Sandra, vc vai utilizar da mesma maneira, caso queira q busque outro item basta modificar no jquery, o arquivo q vai pesquisar, o select q vai selecionar, e a variavel q vai mandar.
19/07/09 às 16:06
esta video ta mesmo show david, posso usar isto para um site de imobiliaria hem amigão?
parabens e sucesso mais e mais
19/07/09 às 16:38
@webson sousa, fique a vontade em usar em seus projeto, lembrando que o código está disponivel no Forum do Mxmasters.
21/07/09 às 3:24
Ok, Vou tentar!Obrigada pela respota.
29/07/09 às 2:27
Caro David, muito boa a video aula, assisti a aula e visualizei os script, tentei aplicar, mais quando carrega o estado as cidades retornan em branco, fiz um teste copiando oscript e mesmo assim ainda não fnciona, pode me ajudar?
Valeu
29/07/09 às 2:51
Caro David, desconsidere o ultimo comentario, consegui, está funcionando perfeito, só ainda não enviei o formulário, não sei se vai enviar o estado e cidade corretamente,mais desde já sucesso em seu trabalho.
Obrigado
30/07/09 às 14:47
Caro David, quero utilizar este combo em um site de automóveis, então eu teria uma tb_marcas, uma tb_modelos, certo? Bom este banco de dados eu já fiz adaptado das tabelas de estados e cidades, até aí tudo tranquilo. Porém, após o usuário selecionar as opções neste combo, como configuro o botão pesquisar ou buscar? Onde ele deve buscar os resultados?Grato
Suas vídeo aulas são ótimas, e tem me ajudado muito.OBRIGADO!!!
30/07/09 às 17:43
@LVazquez, vc vai enviar pelo formulário mesmo, colocar um input do tipo submit, com method get, então com esse dado, vc vai filtrar na tabela, e assim fazendo a pesquisa na tabela dos automoveis,
12/08/09 às 17:07
David, excelente video-aula só que eu to com problemas … eu fiz esse codigo para ser enviado para o meu email, só q no meu email aparece cidade: numero tal e estado: numero tal; como eu faço para aparecer a cidade e o estado selecionado? espero resposta por email, abração.
12/08/09 às 17:51
@Felipe Rodrigues, vc pode recuperar esses dados, antes de enviar, já q vc já o id ’s, aqui tem um função q criei para retorna o nome da cidade e do estado:
function Cidade_Estado($estado, $cidade){
$sql = “SELECT tb_estados.id, tb_estados.nome as estado, tb_cidades.id, tb_cidades.nome as cidade
FROM tb_estado WHERE tb_estados.id = ‘$estado’ AND tb_cidades.id = ‘$cidade’”;
$qr = mysql_query($sql);
$ln = mysql_fetch_assoc($qr);
$itens = array(‘cidade’ => $ln['cidade'], ‘estado’ => $ln['estado']);
return $itens;
}
Para utilizar:
$dados = function Cidade_Estado($_POST['estado'], $_POST['cidade']);
$cidade = $dados['cidade']; //nome da cidade
$estado = $dados['estado']; //nome do estado
1/09/09 às 5:42
eu testei aqui fiz de varias maneiras e nao deu certo
ate tentei pegando o script pronto e alterei os dado mysql mas nao deu
a o primeiro txt fied carrega mas o segundo naum
1/09/09 às 9:16
@D-Jota, confira o nome do select, ve se tá usando change, e usando os atribuitos @.post
15/09/09 às 20:36
ficou esquisito, tentei tentei e dancei
to no dreamweaver e ai ate no modo design aparece os dois combos, soh q na visualizaçao aparece soh um, cheguei ao ponto de deixar na pausa da sua video aula e copiei ponto por ponto, e mesmo assim nao deu. Meu amigo, vc nao sabe como eu preciso aprender isso, to lascado.
ate a conexao fiz igual a vc.
S.O.S. ai profe
ta igualzinho a sua aula
os erros sao na linha 6 do cidades.php
e na index nao aparece os estados e nem o segundo combo na visualizaçao
abraço forte
Douglas desde CHILE
17/09/09 às 1:37
voltei,
o negocio eh o seguinte
se eu coloco na visualizaçao da pagina cidade.php o erro eh da linha nº5
-Notice: Undefined index: estado in C:\Archivos de programa\EasyPHP 3.0\www\clases\cidades.php on line 5
Nao cidades nesse estado
e na pagina index, na visualizaçao, nao da erro, soh q nao aparece os combos.
da uma luz.
abraçao
18/09/09 às 12:14
@Douglas, pegue os arquivos da video aulas no Forum do Mxmasters, o link está na descrição da video Aula. Ai vc pode comprarar como seu script, assim fica mais facil.
18/09/09 às 12:31
@Douglas, vc ser acessar diretamente, isso ocorrer, pq a variavel estado não existe. Se não tá aparecendo, verifique se está enviado essas dados via jquery, confira com o script disponibilizado no forum do MXmasters, dessa video aulas, o link está na descrição da video aula
21/09/09 às 20:40
voltei, soh que voltei pra agradecer, e desejar o melhor pra vc, a aula funcionou blzinha, ajuda assim, poucos dao com boa vontade. vlw mesmo David, vou treinar y tentar fazer mais combos, chegando duvida te peço socorro.
21/09/09 às 21:48
Blz, @Douglas, peço apenas se tiver que postar alguma duvida, coloque lá no Video Aulas brasil, assim facilita na hora de responder, rs.
22/09/09 às 11:34
Olá,
Ótimo tutorial!!! Parabéns!
Funcionou perfeitamente no I.E e no Crome.
Só estou com problemas no Firefox!
Não esta funcionando…
Como poderia resolver isso??
Esta neste link:
http://www.torropublicidade.com.br/lighttech/ondecomprar.php
Obrigada!
22/09/09 às 16:25
@Erika, ele tá puxando, só q não tá vindo com o campo option, dá um conferida como vc tá tentando mostrar esses dados. Qualquer coisa, confira com o script q foi criado na video aula, o link está na descrição da video. Está no Forum do MxMasters
27/09/09 às 20:40
shown de bola gostei da video aula vc só tem que se mais especifico.
3/10/09 às 11:06
@River Cruz, o q seria mais especifico?
7/10/09 às 1:24
Muito bom parabéns mais tem como mostrar a opção selecionada na tela e cada fez que vc seleciona um campo ele é subistituido :0 ou não dá. bom muito obrigado. att
7/10/09 às 9:41
@Ronaldo, bastaria vc atribui o valor em alguma div. Exemplo:
$(“select[name=opcao1]“).change(function(){
var valor = $(this).val();
$(“#valores”).text(valor);
})
HTML:
Veja q resgata o valor e atribui o valor em uma tag de spam, com id valores.
Veja outras vídeo aulas sobre Jquery no Vìdeo Aulas Brasil – http://www.videoaulasbrasil.com.br/categoria/ajax/
7/10/09 às 11:37
Muito Obrigado deu certinho valeu e sucesso.
9/10/09 às 13:40
Muito Bom graças a esse tuto eu aprendi a fazer combobox hehehehehe valeu mestre.
muito mesmo
usei para criar um combo com categoria e subcategoria
18/10/09 às 23:19
Realmente, seu serviço é muito elucidativo, David. Parabéns, merece se tornar rico.
Pretendo disponibilizar no formulário mais campos, campos text field que mostrem os outros valores comumente presentes numa tabela, poderiam ser, por exemplo, placa, chassis, ano de fabricação, isso após o segundo select. Como fazer?
19/10/09 às 8:10
Emerson, vc pode da mesma maneira, o q esses itens tem q ter é um item relacional, por exemplo, vc tem uma tabela modelo, um tabela fabricacao. A tabela modelo está relacionando a tabela fabricacao. Exemplo:
MODELO
id_modelo
modelo
FABRICACAO
id_fabricacao
id_modelo – esse campo q vai relacionar as duas tabelas
ano
Ai é só fazer com fiz na video aula, fitrar a tabela fabricacao, com o id da tabela modelo
20/10/09 às 18:40
Olá, David, fiz o dever de casa,rs.
Agora no terceiro select, acréscimos, até chega a mostrar a opção carregando conforme exibido no site: http://www.equilibriodinamico.info, no entanto, o retorno é sempe vazio.
lá tem como fazer um cadastro de aeroportos que armazena estado e cidade em campos de mesmo nome na tabela aeroportos, o relacionamento acontece com o campo cidade (cidade e aeroportos).
O Rio de Janeiro é a unica cidade que tem aeroportos cadastrados, mesmo assim o retorno é nulo. Agradeço a boa vontade em colaborar tirando dúvidas e aproveito para perguntar se você aceita fazer parte de projetos free lancer.
20/10/09 às 19:07
Emerson, ele tá retornando um erro:
Unknown column ‘nome’ in ‘order clause’
Isso é no sql, veja se esse campo existe na sua tabela, onde vc usou ORDER
21/10/09 às 6:58
Nobre, David, o que você comentou acima estava certo, muito obrigado, o resultado do terceiro select agora está conforme o esperado que pode ser visualizado no site: http://www.equilibriodinamico.info
Lá pode-se notar campos text field que acrescente recentemente, no entanto, ainda sem serem carregados dinamicamente com os valores dos campos da tabela aeroportos após feita a escolha no segundo select. Estou estudando javascript agora para buscar a solução. Certamente com sua orientação o progresso será mais rápido
21/10/09 às 10:39
Emerson, vc pode inserir esses campos dinamicamente, exemplo:
http://pastebin.com/f65fd09e
Vc pode inserir tbm dinamicamente, quando mudar o foco no select[name=aeroportos], coloquei um campo primeiro antes como selecione um aeroporto, e quando selecionar, com evento change, vc gera os campos dinamicamente. É uma alternativa.
21/10/09 às 17:54
David, boa noite,
eu fiz o seguinte, a julgar pela interpretação do código exemplo:
Untitled Document
$(document).ready(function(){
$(“select[name=estado]“).change(function(){
$(“select[name=cidade]“).html(‘Carregando…’);
$.post(“cidades.php”,
{estado:$(this).val()},
function(valor){
$(“select[name=cidade]“).html(valor);
}
)
})
})
$(document).ready(function(){
$(“select[name=cidade]“).change(function(){
$(“select[name=aeroportos]“).html(‘Carregando…’);
$.post(“aeroportos.php”,
{cidade:$(this).val()},
function(valor){
$(“select[name=aeroportos]“).html(valor);
}
)
$(“select[name=cidade]“).change(function(){
$(“select[name=aeroportos]“).html(‘Carregando…’);
$.post(“aeroportos.php”,
{cidade:$(this).val()},
function(valor){
$(“select[name=aeroportos]“).html(valor);
})
/**
* Monta o html para inserir
*/
var label = ‘aeroporto
numero de pistas
altitude
telefone
‘;
$(“#campos-extras”).html(label)
})
})
Escolha um Estado
<?php
mysql_connect(“mysql.equilibriodinamico.info”, “emerson_celt”, “12345″);
mysql_select_db(“db_equilibrio_dinamico”);
$sql = “SELECT * FROM tb_estados ORDER BY nome ASC”;
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo ”.$ln['nome'].”;
}
?>
Escolha um Estado Primeiro
Escolha uma cidade Primeiro
Está correta a colocação? O resultado foi diferente do esperado.
Abraço.
21/10/09 às 18:02
correção: eu colei o código e ficou faltando pedaço, quando fui conferir no site que percebi portanto ai está outra vez:
Untitled Document
$(document).ready(function(){
$(“select[name=estado]“).change(function(){
$(“select[name=cidade]“).html(‘Carregando…’);
$.post(“cidades.php”,
{estado:$(this).val()},
function(valor){
$(“select[name=cidade]“).html(valor);
}
)
})
})
$(document).ready(function(){
$(“select[name=cidade]“).change(function(){
$(“select[name=aeroportos]“).html(‘Carregando…’);
$.post(“aeroportos.php”,
{cidade:$(this).val()},
function(valor){
$(“select[name=aeroportos]“).html(valor);
}
)
$(“select[name=cidade]“).change(function(){
$(“select[name=aeroportos]“).html(‘Carregando…’);
$.post(“aeroportos.php”,
{cidade:$(this).val()},
function(valor){
$(“select[name=aeroportos]“).html(valor);
})
/**
* Monta o html para inserir
*/
var label = ‘aeroporto
numero de pistas
altitude
telefone
‘;
$(“#campos-extras”).html(label)
})
})
})
Escolha um Estado
<?php
mysql_connect(“mysql.equilibriodinamico.info”, “emerson_celt”, “12345″);
mysql_select_db(“db_equilibrio_dinamico”);
$sql = “SELECT * FROM tb_estados ORDER BY nome ASC”;
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo ”.$ln['nome'].”;
}
?>
Escolha um Estado Primeiro
Escolha uma cidade Primeiro
21/10/09 às 18:12
…quando eu colo no campo de mensagem fica legal mas após transmitir some uns pedaços e aparecem outros…!?
por isso coloquei o codigo referido em http://www.equilibriodinamico.info clicando no link campo_texto.
abraço.
21/10/09 às 18:14
@Ermeson, seria isso, ao mudar a cidade apareceria os outros itens. Só q pode ocorre, q vc escolha uma cidade, não tenha aeroportos, por exemplo. Então, eu indicaria vc colocar, algo desse tipo:
$(”select[name=aeroportos]“).change(function(){
//aqui inseri os novos itens
})
Aconselho vc dá uma olhada nas vídeo aulas de jquery, pra vc se familiarizar mais com ele.
http://www.videoaulasbrasil.com.br/categoria/ajax/
21/10/09 às 19:18
ok, adiantou muito, fico muito agradecido a familia mxmasters. Vou comprar os produtos de vocês por que são bons e pelo fino trato.
Já assisti uma aula de ajax, vou assistir as outras.
Deixei um link na index do http://www.equilibriiodinamico.info para pagina “testes” onde o resultado com as alterações sugeridas é visualizado
Sucesso.
23/10/09 às 12:49
David, boa tarde, criei a div e o css após assistir e cómpreender as aulas do Felipe Cardozo e do Matheus. Funciona perfeitamente exceto quando acrescento o código que deve trazer os resultados para div. O codigo pode ser visto em http://www.equilibriodinamico.info/testes2.php
Eu me contento se não funcionar de forma dinâmica.
Agraddeço pela moral.
26/10/09 às 12:32
Boa tarde David, parabens pelo seu video, ficou muito bom, eu so estou com problema em colocar mais uma combo, alias eu queria colocar uma div com as informacoes dos representantes (como nome, endereco, telefone) separado por cidades, o que estou fazendo de errado? lembrando que a minha tabela representantes ja foi criada…
Obrigado!
$(document).ready(function(){
$(“select[name=estado]“).change(function(){
$(“select[name=cidade]“).html(‘Carregando…’);
$.post(“cidades.php”,
{estado:$(this).val()},
function(valor){
$(“select[name=cidade]“).html(valor);
}
)
})
})
$(document).ready(function(){
$(“select[name=cidade]“).change(function(){
$(“select[name=representante]“).html(‘Carregando…’);
$.post(“representantes.php”,
{cidade:$(this).val()},
function(valor){
$(“select[name=representante]“).html(valor);
}
)
})
})
Escolha um Estado
<?php
mysql_connect(“localhost”, “root”, “”);
mysql_select_db(“representantes”);
$sql = “SELECT * FROM tb_estados ORDER BY nome ASC”;
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo ”.$ln['nome'].”;
}
?>
Escolha um Estado Primeiro
Escolha um Estado Primeiro
26/10/09 às 12:36
Minha pagina representantes.php
<?php
mysql_connect(“localhost”, “root”, “”);
mysql_select_db(“representantes”);
$cidade = $_POST['cidade'];
$sql = “SELECT * FROM representantes where nome = ‘$cidade’ ORDER BY nome_representante ASC”;
$qr = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($qr) == 0){
echo ”.htmlentities(‘nda’).”;
}else{
while($ln = mysql_fetch_assoc($qr)){
echo ”.$ln['nome_representante'].”;
}
}
?>
29/10/09 às 9:12
@Vinicius Lara, então, aparentemente tá normal. Se vc usa o firefox, aconselho usar o plugin firebug, assim vc saberá qual o erro que está dando, e se está enviando algum dado para outra página. Use o firebug, e me informe qual o erro apresentado e a linha.
29/10/09 às 9:24
@Emerson, vc usa o Firefox, utilize o Plugin Firebug, pra verificar o erro q possa ter ocorrido, assim fica mais facil identificar.
30/10/09 às 8:31
Opa David consegui, era um erro besta, mas como eu faço para colocar alem do nome do representante, o endereco, telefone, dados pessoais? lembrando que essas informações estão tudo no meu banco de dados associados pelo nome do representante…
Obrigado
30/10/09 às 8:35
@Vinicius Lara, da mesma maneira, se vc consegue pegar os dados de um select, e fazer a pesquisa, vc retorna essa valores em qualquer parte, podendo ser div, select, ou outro campo, basta informar o id, exemplo, retorna numa div:
$(“#conteudo-representate”).html(valor);
Na parte de retorna os dados, informei q quero inserir os dados um elemento com id #conteudo-representate.
14/11/09 às 10:07
Legal David.
Será que você poderia postar uma vídeo aula com 3 campos combos dimânicos, tipo [Estado] [Cidades] e [Bairros] só como exemplo?
14/11/09 às 10:09
@Ilton , vc vai usar o mesmo script, da mesma maneira q fiz com 2. A única coisa q vai mudar é relação ao pegar o select e informar onde vai buscar os dados no banco de dados.
15/11/09 às 23:51
Cara quebro minha perna hueheuhe
muito bom, continue nos ajudando
18/11/09 às 9:48
Otima video aula …
e dale html…rsrs
26/11/09 às 9:47
Bom dia, David..primeiramente parabens pelo seu tutorial..muuito bom..assim vc estará ajudando os iniciantes como eu em php…deixei meu codigo igual ao seu, mas o segundo combo carrega vazio..ele aparece carregando mas qdo este some, o combo fica vazio..ja revisei o codigo vaarias vezes…banco..tem alguma ideia ? se precisar, colo meu codigo aqui.
Grande abraço
27/11/09 às 7:51
@Alex, dá uma conferida no código q está no forum do Mxmasters, o link está na descrição da video aula, assim fica mais facil de vc comparar os scripts.
27/11/09 às 8:29
Desculpa te encher David..mas quando vou rodar meu codigo, ele aparece com um ponto de exclamação na barra do ie e vou ver o erro…ele diz que o objeto não da suporte para a propriedade ou metodo nas seguintes linhas:
$(“select[name=cidade]“).html(‘Carregando…’);
27/11/09 às 9:01
@Alex, vc está chamando o arquivo jquery pra sua página?
27/11/09 às 9:42
$(“select[name=cidade]“).html(‘Carregando…’);
27/11/09 às 9:43
sim…foi uma das coisas que verifiquei..
27/11/09 às 9:43
27/11/09 às 14:51
fala david…eu novamente…então, consegui tirar todos os erros que vinham dando..mas o combo cidade continua aparecendo vazio..o engraçado é que eu dou um echo pra imprimir em outra pagina..ai as cidades aparecem…mas dentro do combo nada..o que pode ser ? ja fiz mil e uma alterações…e nada…
29/11/09 às 11:00
@Alex, tente dá um alter dentro da function(valor), pra ver se mostra algo:
function(valor){
alert(valor);
}
Para verifica se tá retornando ou não algum valor.
30/11/09 às 11:38
bom dia, david…consegui…o problema era que na pagina cidade.php, eu estava deixando as tags html e body…tirei e funcionou…agora vou tentar adcionar + 2 combos pra ficar com um total de 4..haha
20/01/10 às 15:29
Perfeito!
Muito obrigado!
É muito útil em qualquer sistema que tenha interrelacionamento de tabelas….
Além de esse processo nos possibilitar fazer posts mais dinamicamente, como upload de imagens por exemplo….
Muito bom! Parabéns!
25/01/10 às 18:55
Ola David,
Sensacional a sua video aula, mas estou com um problema com estes codigos.. tipo qdo eu seleciono o estado nao ocorre nenhum evento do esperado, ja verifiquei todo o codigo desde do ate rsrsrsrs e nao entendo pode ser um bug..
PS- ja ate copiei o codigo q voce disponibilizou e o modifiquei de acordo com as necessidades.. estou utilizando dw cs3 sera q ele faz algum bug??
25/01/10 às 19:24
@Andre, a IDE é indiferente, poderia usar o bloco de notas, sem problema algum. Uma maneira de vc o erro q possa está ocorrendo, é se você usar o Firefox, e com isso usar o plugin Firebug, assim dará para saber qual o erro q pode está ocorrendo, as vezes é apenas falta de uma virgula, com o firebug poderemos saber qual é o erro do script.
27/01/10 às 11:16
Olá david, ótimo tutorial, procurei muitos até encontrar um que funcionasse de verdade, eu já até tinha esse SQL.
Deixa eu te falar, estou aprendendo a programar em PHP, e estou aprendendo aos poucos, estou desenvolvendo um site e preciso fazer uma ficha de inscrição online. Já tenho o formulário completo, já estou utilizando este combo dinâmico que você ensinou e estou precisando de uma ajuda na montagem do BD em SQL. Você poderia me ajudar nessa montagem? Os campos são estes: nome, instituição, nomecrachá, endereço, número, complemento, bairro, cep, estado, cidade, fone, fax, celular, email e categoria.
27/01/10 às 11:26
Seria algo assim:
TABELA cadastro
id = INT AUTO_INCREMENT PRIMARY KEY
nome = VARCHAR (80)
instituicao = VARCHAR(255)
nome_cracha = VARCHAR (100)
endereco = VARCHAR (255)
numero = VARCHAR (80)
complemento VARCHAR (100)
bairro = VARCHAR (255)
cep = VARCHAR (9)
estado_id = INT
cidade_id = INT
fone = VARCHAR(14)
fax = VARCHAR(14)
celular = VARCHAR(14)
email = VARCHAR (100)
categoria = INT
Estado, cidade e categoria, são tabelas diferentes, logo o que vc vai inserir na tabela de cadastro apenas os id’s deles para poder fazer o relacionamento, juntando os dados das tabelas, utilizando o INNER JOIN. Pesquise sobre relacionamento entre tabelas, Formas Normais, e sobre o INNER JOIN para vc pode mostrar os dados, unido pelo id dessas tabelas
27/01/10 às 13:13
Seria muito complicado pra você me ajudar nesse procedimento de criação deste script?
Este é um site de eventos e este evento será feita a inscrição pela internet.
Obrigado!
27/01/10 às 13:17
@Ricardo vai ser sim, pq tenho que entregar alguns trabalho. Recomendo vc pesquisar sobre Inner Join, e relacionamento entre tabelas.
27/01/10 às 13:48
Ok. Entendo e agradeço a ajuda.
Só mais uma coisa então pra ver se eu consigo desenrolar esse script, teria que fazer a relação da tabela cadastro + tb_estado + tb_cidade, seria essa a relação entre tabelas que você se referia?
17/02/10 às 9:50
Site simplesmente fantástico para quem quer aprender!
17/02/10 às 11:07
David,
Uma dúvida:
Teria como retornar dois valores como por exemplo Cidades e Bairros?
Tipo:
Vou colocar o código de um item e quero que ele preenhca não apenas um campo, mas 3… teria como fazer utilizando este mesmo exemplo dado por você?
17/02/10 às 11:35
David,
A PERGUNTA ANTERIOR FOI MAL FORMULADA:
Que dá para preencher mais de um campo, sei que dá, mas queria saber se isso é possível utilizando apenas um envio (post) para uma única página e esta retornando valor1, valor2, valor3…?
17/02/10 às 11:48
@Yomar, sim vc pode enviar quantos valores q vc desejar, e retorna o valor em HTML. Se não me engano, como jquery 1.4, vc já pode enviar um array, só não sei se tbm retorna um array.
17/02/10 às 11:57
Acho que não me fiz entender…
Seria basicamente isto:
Enviando APENAS o valor do ESTADO…
Na parte onde recebemos o valor…
—————————-
function(valor){
$(“select[name=produto]“).html(valor);
}
—————————-
Queria saber se isso seria possível:
—————————-
function(valor1){
$(“select[name=cidade]“).html(valor1);
}
function(valor2){
$(“select[name=bairro]“).html(valor2);
}
function(valor3){
$(“select[name=logradouros]“).html(valor3);
}
—————————-
A pergunta se faz porque, pelo que entendi, o valor retornado é apenas o resultado da página cidades.php, e não vi referência ao VALOR na mesma, logo só achei possível fazer isto enviando o mesmo valor só qiue para páginas diferentes, tipo: cidade.php, bairro.php e logradouro.php.
Seria isto mesmo?
Abraços e obrigado pela atenção despendida.
17/02/10 às 12:09
@Yomar, não dá pra isso, pq ele só pode retorna um função de callback, de acordo com as diretrizes da funcão $.post, pq ela tem essa estrutura:
$.post(‘url’,
{data: dados},
function (valor_retornado) {
}
);
Aqui sobre $.post (lembrando com modificações para jquery 1.4, enquanto da video aula a versão 1.3, pode ocorrer algumas modificações em alguns itens.)
http://api.jquery.com/jQuery.post/
17/02/10 às 15:42
Ok David.
Muito obrigado pela AULA!
Uma última pergunta…
Você já fez uma video aula com uma combobox preenchendo um input box?
É que estou tentando mas está dando o seguinte erro: “Chamada inesperada para acesso à propriedade ou método”.
O erro deve estar na forma como estou tentando enviar e receber os dados numa textbox.
Estou tentando assim:
———————————–
$(“input[name=codigo]“).text(‘value=\”0\”‘);
$.post(“Excelente_Ajax_[MXMaster]David.php”,
{codpost:$(this).val()},
function(valor4){
$(“input[name=codigo]“).text(valor4);
}
)
———————————–
No arquivo “Excelente_Ajax_[MXMaster]David.php” estou retornando o valor assim:
———————————–
echo “”;
———————————–
Caso não tenha a aula, você poderia ajudar?
17/02/10 às 15:52
Ops…
Errei novamente no comentário anterior …
No arquivo “Excelente_Ajax_[MXMaster]David.php” estou retornando o valor assim:
———————————–
customedio = $ln['codigo'];
echo “”;
———————————–
17/02/10 às 15:57
NOOOOOOOooooossa…
Será que sai hoje???
Apaga a daí de cima!!!
Errei novamente no comentário anterior …
No arquivo “Excelente_Ajax_[MXMaster]David.php” estou retornando o valor assim:
———————————–
$codigofinal = $ln['codigo'];
echo “”;
———————————–
Ps.: O erro aponta para linha 102 do jquery-1.4.1.min.js
17/02/10 às 16:03
O erro não é meu não… é que quando posto o código o texto dentro do echo está sendo engolido…
Deve ser algo com a explicação que vc deu sobre aspas duplas “e aspas simples’…
No arquivo “Excelente_Ajax_[MXMaster]David.php” estou retornando o valor assim:
———————————–
$codigofinal = $ln['codigo'];
e c h o ” ;
———————————–
Ps.: O erro aponta para linha 102 do jquery-1.4.1.min.js
17/02/10 às 16:06
@Yomar, não tenha essa video-aula, mas é da mesma maneira, precisa de uma ação para executar essa ação,, e depois resgatar o valor. No exemplo q está no link abaixo, vamos dizer q existe um botao, e ao clicar nele ele resgata um valor a ser atribuido depois da ação a um campo input. Veja se seria q vc queria fazer.
http://pastebin.com/f72fa3be3
Update: Coloque o codigo no pastebin, como fiz pra mostrar o exemplo
17/02/10 às 16:40
David, consegui beleza!!!
VALEU MESMO.
O MXMaster deveria ter uns cursos legais com video aulas de AJAX, PHP e CSS.
Com vc como professor seria 10.
Muito obrigado pela atenção e presteza amigo.
17/02/10 às 16:58
@YOMAR, estou amadurecendo a ideia dos cursos, e estudando tbm, se sair o pessoal será informado. abrs
1/03/10 às 12:14
Parabén David! Uma didática formidável, apreciei muito seu trabalho.
Abraço!
1/03/10 às 12:28
Obrigado @William
4/03/10 às 8:54
Muito bom o tuto! Só acho que teria que mudar um pequeno detalhe.. O ideal e trabalhar o banco de dados com UTF8 e nao latin ou outro caracter..
Trabalhando com UTF8, qualquer caracter será aceito(trabalhando os arquivos em UTF8 tambem claro) Já em latin, pode ter alguns caracteres que não são aceitos.
4/03/10 às 9:10
@Denis, UTF-8 aceita uma gama de caracteres, com se quisesse escrever em japones ele aceitaria. O Iso-8859-1 ele aceita acentuações. Em algumas situações de pesquisas de banco de dados com UTF-8 ele diferencia acentuação, e dependendo do caso não muito interessante para o usuário. Tbm acho que seria inerente em relação a vídeo aula, já q era proposta uma determinada situação, mas mesmo assim vlw pela dica.
10/03/10 às 8:57
como seria para listar o conteudo como as cidades em chekbox e nao em SELECT?
AGUARDO A RESPOSTA, ESTOU PRECISANDO MUITO DISTO
10/03/10 às 12:52
@cidicley cintra, basta colocar o id no value do input type radio, ou checkbox, vai depender da finalidade.
16/03/10 às 17:07
Cara… isto me ajudou MUITO.
Pelo que vi, voce é o PICA DAS GALAXIAS no PHP e java eim. Olhando o video, da até pra pensar que você decorou tudo antes de fazer o video hehehe… mas… a gente sabe que tu sabe !
Um dia quem sabe eu chego lá… programar em php assim… livre, leve e solto! Digitando comando a comando sem ter que ficar pesquisando na net.
Aqui a coisa funciona assim, cada comando, 10 ou 20 buscas no google. Valeu… t+
16/03/10 às 17:11
Obrigado @Francisco. Eu só programo com o site do manual do PHP aberto, e fora ajuda da IDE para completar. Claro q aos poucos vc decora bastante coisa, mas consultar o manual da linguagem é de lei, rs
20/04/10 às 0:59
Olá David, muito boa sua explicação consegui implementar o select dinâmico na minha aplicação, porém estou com um problema, adptei seu código e no primeiro select o usuário seleciona uma das datas importadas do banco, com isso, gera o segundo select contendo os pedidos referentes aquela data, até ai tudo bem, funcionou perfeitamente, mas a partir disso quero exibir os dados desse pedido, e não consigo pegar o valor das duas variáveis (data, pedido) escolhidas no select pelo usuário.
20/04/10 às 8:46
@Carlos, vc tá dizendo pegar via jQuery ou PHP?
20/04/10 às 14:00
Via PHP, consegui fazer aqui, fiz apenas um POST $dtpedido = $_POST['dtpedido']; pegando o valor da variável, tinha tentado isso antes e não tinha funcionado não sei pq. Acho que era o lugar em que se encontrava o POST, agora coloquei após o fim do form e do botão submit.
20/04/10 às 17:31
Boa tarde David…cara…sou usuário assiduo do MXMasters…principalmente seu fã…cara…vc ta de parabéns.
O que acontece…estou a 3 meses procurando uma forma de fazer com que meu site tenha um sistema de Cidade vs Bairro…ou seja…tenho um cadastro de clientes e gostaria de q quando o usuário clicasse na lista de Cidade onde ele reside, automaticamente habilitasse a lista de bairros correspondentes a ekela cidade.
Vasculhei no MX e graças a vc achei a video aula que explica( e mto bem explicado) essa tarefa…mas cara…estou fazendo EXATAMENTE…SEM MUDAR UMA VIRGULA O QUE VC FEZ.
E por incrivel que pareça, ou por burrice minha mesmo, nao esta dando certo.
E outra…vc esta fazendo local…e gostaria de saber tbm como fazer isso efetivamente no meu site, ou seja…remoto.
PELO AMOR DE DEUS…ME AJUDE DAVID !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Desde ja agradeço a atenção
Abraço
Rodrigo Cesar
20/04/10 às 17:46
O que esta acontecendo aki comigo, pelo que li ai nos comentarios, é exatamente o que esta acontecendo com algumas pessoas…os dados do 1 select até aparecem, mas quando seleciona algum estado, nao habilita os dados do 2º select.
Outra coisa…quando eu citei que estou querendo fazer um sistema de Cidade vs Bairro, é exatamente isso que vc fez…eu apenas adaptei…mas mesmo assim, tentei fazer , como disse anteriormente…EXATAMENTE COMO VC FEZ…nao deu certo mesmo assim rsrsr…cara…..to quase infartando rsrs
Abraço
21/04/10 às 17:43
cara…realmente nao ta dando certo aki…ja fiz o impossivel e nao da…
tive pensando …teve um momento da video aula onde vc testou e deu um probleminha la…vc disse que ia fazer uma pausa e ja voltava…
me diz uma coisa…vc resolveu o problema que tinha dado modificando algo?…será q é por causa disso que nao ta dando certo aki pra mim…pq fiz exatamentwe como vc…
como vc me pediu, ta aki o link da minha pagina onde deverá comter esse sistema…
http:///www.dicavaliosa.com/cadastrese.php
Desde ja agradeço a agtenção mais uma vez.
Abraço
Rodrigo
21/04/10 às 17:47
opa…retificando
http://www.dicavaliosa.com/cadastrese.php
21/04/10 às 18:23
@rodrigo cesar, o erro q ocorreu quando gravei era nos caracteres. NO seu caso, vc está indicando o caminho errado para o jquery. No caso está assim:
src=”js/jquery-1.4.2.min.js”
Sendo q está no mesmo nivel do arquivo, sendo q ficaria assim:
src=”jquery-1.4.2.min.js”
22/04/10 às 13:29
CARA………EU TE AMOOOOOOOOOOOOO KKKKKKKKKKKKKK
VC SALVOU MINHA VIDA RSRS…ME MANDE O SEU ENDEREÇO Q VOU TE MANDAR UMA GARRAFA DE WHISKY 18 ANOS DE PRESENTE RSRSRS..
MEW…MAIS UMA VEZ, MEUS PARABÉNS…VCS DO MXMASTERS SÃO INCOMPARÁVEIS…EM ESPECIAL, VC, O FELIPE CARDOZO E O ALEIXO ( Q TBM SÃO 2 MONSTROS EM WEB)…MANDE UM ABRAÇO MEU PRA ELES…
MTO…MAIS MTO OBRIGADO MESMO CARA
CONTINUEM ASSIM….A SERIEDADE E O PROFISSIONALISMO DE VCS DO MX É QUE FAZ DESSE SITE “O MELHOR SITE DE WEB”…
SUCESSO PRA VCS!!!!
22/04/10 às 13:33
Obrigado @rodrigo cesar
22/04/10 às 15:32
opa…olha eu aki de novo enchendo o seu saco rsrs
cara…ta dando td certinho agora…mas to com mais um pequeno problema…consegui fazer com q os dados do formulario sejam enviados para meu banco de dados…mas o problema é q no meu banco de dados phpMyadmin, esta cadastrando o ID das cidades e estados e nao os nomes…será que vc poderia me auxiliar quanto a esse problema mais uma vez? e desculpe o abuso rsrs
desde ja agradeço a atenção
22/04/10 às 16:24
@rodrigo cesar, a ideia é vc utilizar as tabelas das cidades e estados, usando um relacionamento, tenta um cidades_id, e estados_id na tabela que conterão esses valores, e depois usar o INNER JOIN para juntar essas tabelas.
Mas se vc quer gravar o nome, basta fazer uma pesquisa nas tabelas referentes, e retorna o valor, exemplo:
$idEstado = $_POST["estados"];
$query = mysql_query(“SELECT * FROM estados WHERE id = ‘$idEstado’”);
$linha = mysql_fetch_assoc($query);
$estado = $linha['estado'];
22/04/10 às 17:34
cara…desculpe minha ignorancia mas realmente nao entendi…como te disse, sou totalmente ignorante na parte de programação…inclusive tava vendo o site do MX e vou adquirir alguns cursos ai com vcs…
onde devo colocar esse codigo??
o codigo da minha pagina é esse:
.:: dicavaliosa.com ::. – Home
$(document).ready(function(){
$(“select[name=estado]“).change(function(){
$(“select[name=cidade]“).html(‘Carregando…’);
$.post(“cidade.php”,
{estado:$(this).val()},
function(valor){
$(“select[name=cidade]“).html(valor);
}
)
})
})
<!–
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i
Preenchendo os campos abaixo, independentemente de querer ou não anunciar seu negócio, você se habilita a receber notícias periódicas da coluna Fique Atento, além de SUPER DICAS de serviços ou produtos em oferta dos nossos anunciantes.
<form action=”" name=”form1″ method=”POST”>
Nome
E-mail
Sexo
M
F
Sua Atividade
Alimentos
Arte e Cultura
Beleza e Bem-estar
Bares e afins
Carros – comércio e acessórios
Construção Civil – comércio e serviços
Educação – Escolas e Cursos
Eletro-eletrônica
Esporte e Lazer
Festas e Eventos
Gráfica, Papel e Embalagem
Informática, Internet e Telecomunicações
Máquinas, Instrumentos, Ferramentas e Motores
Saúde
Moda e Indústria Têxtil
Produtos e Serviços para Empresas
Profissionais, Associações e Cooperativas
Indústria farmacêutica
Transporte, Armazenagem e Logística
Viagens e Turismo
Estado
Escolha um Estado
<?php
mysql_connect(“minha conexao”, “meu usuario”, “minha senha”);
mysql_select_db(“banco_dica”);
$sql = “SELECT * FROM tb_estados ORDER BY nome ASC”;
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo ”.$ln['nome'].”;
}
?>
Cidade
Escolha um Estado Primeiro
desculpe colocar o codigo inteiro mas nao faço ideia onde colocar esse codigo que vc me passou!!!
22/04/10 às 20:13
@rodrigo cesar, posta no pastebin.com, e me passa o link.
23/04/10 às 12:01
cara…nao entendi mto bem isso…
éra pra eu entrar nesse site http://www.pastebin.com e postar o codigo la???
foi o que eu fiz rsrs…se nao era isso, me da um toke por favor
abraço
23/04/10 às 12:03
@rodrigo cesar, é para colocar lá, ele gerar um link, e manda para mim, pq fica organizado, e o codigo destacado. Escolha a opção de PHP
23/04/10 às 12:36
entao foi isso mesmo que eu fiz…postei o codigo da minha pagina la ja…
se puder me auxiliar mais uma vez, agradeço de coração
vlwww
23/04/10 às 12:47
@rodrigo cesar, vc tem q colocar lá, e mandar o link q ele gerou, no caso da url, exemplo:
http://pastebin.com/f7znmems
23/04/10 às 15:33
cara…seria isso?????????
http://pastebin.com/sASFmz6k
23/04/10 às 18:59
@rodrigo cesar, vc copiou errado, pq não consigo acessar
25/04/10 às 20:19
entao cara…nao to conseguindo entender o que vc precisa que eu faça para q vc possa me ajudar…tem algum outro canal onde agente possa se comunicar pra vc me explicar direito o que vc precisa?
Valew…
26/04/10 às 8:43
@rodrigo cesar, vamos passo a passo.
1 – Vá no site http://pastebin.com/
2 – Pegue o seu código e coloque em Post a new Pastebin
3 – Em Syntax highlighting, escolha a linguagem de que você postou, no caso PHP
4- Clique em submit
5- Copie a URL que está no endereço no navegador. E mande para mim.
26/04/10 às 10:26
entao…foi exatamente o que eu fiz e te mandei…fiz de novo e a URL que gerou na barra de endereço do navegador foi…
http://pastebin.com/XF8PwmR6
abraço
26/04/10 às 18:24
@rodrigo cesar, agora consegui visualizar, fiz um exemplo com parte de cadastro selecionando o nome do estado, e depois é só fazer a mesma coisa com o nome da cidade. Essa é uma maneira de fazer.
http://pastebin.com/CnfUbapm
29/04/10 às 21:42
nao cara…acho que nao me expliquei direito…….esse codigo que vc passou nesse site ai é o codigo do Insert Record…isso eu fiz….esta enviando os dados direitinho para o meu banco de dados…o que esta acontecendo é que apenas os dados das Cidades e dos Bairros estao cadastrando os “IDs” e nao os nomes efetivamente…se quiser, da uma olhada no meu site…
http://www.dicavaliosa.com/cadastrese.php
valew
29/04/10 às 22:21
@rodrigo cesar, então, vc vai pegar esse id, e pesquisar no banco de dados dos estados e cidades, para saber qual ele corresponde. Ou vc pode fazer a pesquisar usando outros campos, se não me engano a tabela tbm tem a sigla do estado na tabela de cidade. Assim vc pode em vez do value retornar o id das tabelas, na tabela estado retorna a SIGLA ( RJ), e nome da cidade.
10/05/10 às 10:33
Bom dia David! Primeiramente gostaria de parabenizá-lo pela ótima vídeo-aula. Realmente muito mas muito boa mesmo! Bom, gostaria de acrescentar mais uma combo box mas não estou sabendo onde mexer na realidade. Sou iniciante na programação php ainda então estou com dificuldades.
Abração!
10/05/10 às 11:15
@Thyago, o procedimento será o mesmo. Vc terá que recuperar o valor o select, envia para um arquivo fazer a pesquisa no banco de dados, e retornar o valor. Praticamente vc vai duplicar o primeiro codigo de pesquisa, apenas modificacando os valores do selects e para qual arquivo realizará a busca.
10/05/10 às 14:41
Boa tarde David…cara…será q vc poderia me auxiliar mais uma vez…é o seguinte…td o que vc me explicou ate agora funcionou perfeitamente…agradeço mais uma vez…mas o que to precisando agora é…
o meu site é um guia de comercios e serviços
na minha pagina inicial, tenho que fazer um sistema de busca interna onde o usuario seleciona a categoria (alimentos, bares e restaurantes, informatica, autos etc…), depois disso, escolha a cidade e o bairro desejado…. o resultado tem q ser exibir apenas as informaçõe q o usuario pediu por exemplo:
Categoria > Informatica
Cidade > São Paulo
Bairro > Penha
Resultado: apenas comerciantes da area de informatica que estejam localizados em sao paulo e bairro penha
me expliquei bem?
Aguardo resposta…
desde ja agradeço a atenção
Abraço
Rodrigo
10/05/10 às 15:03
@rodrigo cesar, basta vc verificar o valores que estão preenchidos e assim fazer a pesquisa. Aconselho usar o array para montar essa restrição, exemplo:
http://pastebin.com/6XDPcxV7
10/05/10 às 22:14
Eae David, tudo bom? Adorei a video aula, ficou muito boa! Boa mesmo cara! Parabéns! Não só a você mas como a todos do MX. Mas tem como você me ajudar em um pequeno problema? É assim:
Funcionou tudo 95%, porque quando eu seleciono um Estado do Acre até o Espitiro Santo, aparece todas as cidades normalmente, mas depois do Espitiro Santo, (Ex: Goias, maranhão, etc) Não aparece nenhuma cidade! Estranho isso… Bom, fica ai minha duvida. Abraços!
10/05/10 às 22:24
@Marcio Vinicius, então está enviando os dados, e retorna os valores até uma determinado estado. Seria interessante, na parte de callback ( function(valor) {} ), e coloque um alert(valor), assim vc saberá o valor q está retornando:
$.post(“arquivo.php” ,
{
campo : $(this).val()
}, function(valor){
alert(valor);
});
10/05/10 às 22:51
Então David, coloquei o Alert, porém ainda continua o mesmo erro, apenas aparece um Alert mesmo mostrando todos os estados, e nos que dão erro aparece
‘.(‘Não há cidades nesse estado’).”;
11/05/10 às 8:27
@Marcio Vinicius, era apenas para dá o alert mesmo, pra ver se retornava um erro. Na parte do jquery ele está funcionando, veja agora a parte do php. Veja se o ID ou campo que vc está enviando está cadastrado no banco, e se vc está filtrando com o campo da tabela correta.
11/05/10 às 9:25
David,
Obrigado. Deu certo. Apenas não sei porque ele funciona quando esta em um servidor aqui da minha maquina mesmo e quando jogo pro ar ele não funciona. No ar, ele esta carregando os dados dos estados porém a cidade não carrega.
Abraço
11/05/10 às 9:36
Só acrescentando mais uma coisa, eu acho que o javascript que não esta funcionando pois coloquei um alert lá no código e ele não abre nada ainda assim a não ser funcionando aqui internamente.
Abraço
11/05/10 às 9:39
Aff…esquece tudo…rsrsrs…
eu que esqueci de colocar a pasta js no servidor!
Valeu pela grande ajuda ae David;
Abraços
11/05/10 às 17:37
David, desculpe a minha ignorancia mas como já disse sou iniciante no php. Bom…estou com o seguinte problema. No meu formulário de contato eu inseri as combos de estado e cidade como vc fez no exemplo. Até aí funciona belezinha. Mas na hora de enviar, acontece o mesmo que foi citado por Felipe Rodrigues no dia 12/08/09. Tentei implementar o código que vc falou porém ele dá o seguinte erro:
Parse error: syntax error, unexpected T_FUNCTION in /home/autobeti/public_html/novo/enviar.php on line 20
O que pode estar acontecendo de errado?
O primeiro código abaixo, estou colocando no próprio formulário e o segundo no envia.php que é o arquivo que envia os dados pro meu email.
Codigo no contato.php
function Cidade_Estado($estado, $cidade){
$sql = “SELECT tb_estados.id, tb_estados.nome as estado,
tb_cidades.id, tb_cidades.nome as cidade
FROM tb_estado WHERE tb_estados.id = ‘$estado’ AND tb_cidades.id =
‘$cidade’”;
$qr = mysql_query($sql);
$ln = mysql_fetch_assoc($qr);
$itens = array(’cidade’ => $ln['cidade'], ‘estado’ => $ln['estado']);
return $itens;
}
Código no envia.php
$dados = function Cidade_Estado($_POST['estado'], $_POST['cidade']);
$cidade = $dados['cidade']; //nome da cidade
$estado = $dados['estado']; //nome do estado
Obrigado,
Thyago
11/05/10 às 23:01
Ok David, irei dar uma olhada! Valeu pela atenção. Agora outra pergunta… Bem pessoal. Pelo que eu vejo na maioria das videos aulas que vocês aqui realizam quando se trata de gerenciamento do banco vocês usam o phpMyadmim, algo assim, mas para uso pessoal, trabalhos mesmo, você usa esse mesmo ou outro? Curiosidade apenas… Abraços.
12/05/10 às 0:31
Cara, o negócio não vai de jeito nenhum! Já até coloquei o seu código aqui, e nada! Acho que é algo relacionado ao Banco de Dados mesmo, eu acho, não sei… Porque os Nomes dos Estados e Cidades que contem acentos, etc, aparecem com caracteres ao invés de aparecer o nome corretamente… =/
12/05/10 às 8:47
@Marcio Vinicius, para modela os dados, e criar as tabelas eu utilizo o workbenck, ele é gratuito. Você consegue ter uma visão melhor dos relacionamento entre as tabelas. Depois eu gero um SQL e executo no PHPMyAdmin. Ai a partir dai, o a visualização dos dados eu vejo no PHPMyAdmin.
O lance da tabela parece estranho mesmo, pq está realizando a pesquisa corretamente de alguns lugares e outros não. Vc está usando as tabelas que disponibilizei, ou está usando outra?
12/05/10 às 8:48
@Thyago, coloque o codigo no http://www.pastebin.com, e me passa o link para eu dá uma olhada.
12/05/10 às 10:56
David, segue abaixo o link
http://pastebin.com/uE8zPBKZ
Abraço
12/05/10 às 12:42
@Thyago, tente agora:
http://pastebin.com/MAzPKJmS
12/05/10 às 14:09
Continua o erro David.
Parse error: syntax error, unexpected T_FUNCTION in /home/autobeti/public_html/novo/enviar.php on line 20
Abraço
12/05/10 às 15:50
Fala David…entao cara…como eu havia dito a vc, eu nao entendo nada de codigos php…entao esse negocio de array, nem adianta vc falar q nao faço ideia do q é rsrs
eu coloquei o codigo inteiro da minha pagina onde preciso que esse sistema de busca funcione…ta ai
http://pastebin.com/PcYN5ryY
o que eu devo fazer para funcionar e onde tenho que adcionar esses codigos q vc me passou?
da uma força ai por favor!!!
esse sistema de busca esta localizado na index do meu site
http://www.dicavaliosa.com
e pelo q percebi, o “form” onde deve conter a programação esta na linha 237 do pastebin…será??????? rsrs
desde ja agradeço sua ajuda
Rodrigo
12/05/10 às 16:57
@Thyago, poste todo o codigo do arquivo enviar.php no http://www.pastebin.com
12/05/10 às 17:12
@rodrigo é muito importante saber sobre array, se não vc se dificultar, então por isso, eu tenho uma aula explicando só sobre o assunto, poderá te ajudar a entender o código que te passei.
http://www.mxmasters.com.br/php/entendendo-sobre-array-no-php/
13/05/10 às 0:00
Poxa David, desculpa cara, mas o erro estava que eu não inserir todos os INSERT das cidades, rs, Por isso que não pegava os outros, porque não tinha, desculpe mesmo!
Agora, esse workbenck é igual ao DBDesigner ? Eu Uso o DB para a modelagem(estou aprendendo) e o MySQL-Front, para a mesma função que você faz no PhpMy… Qual você me indica? Como iniciante?
Forte abraço!
13/05/10 às 8:24
@Marcio, isso acontece. Sim , o Workbenck seria uma versão mais atual do DB Designer, já que esse foi descontinuado. Mas ele é bom também. Usar um “modelador” para suas tabelas, já é um ótimo começo. Vc está usando otimas ferramentas.
14/05/10 às 1:37
David, estou com um problema, não sei ao certo se isso é um problema, mas é no minimo curioso… Eu to precisando fazer um sistema de Login e Senha, Cadastro, Area Restrita e tudo mais, porém, está tudo sempre dando errado! Eu fiz com base em uma video aula que você mesmo criou para esse tema, e nada! Testei várias vezes o código, mudei coisas, etc, etc, e nada! Ai fui mais radical, coloquei todo o seu código no meu PC, e NADA! É como se meu PC estivesse com “problemas” para ler o PHP. É estranho! Ai pesquisei por outros métodos de de se realizar um cadastro, e nada tbm! Pegava o código do Autor do tutorial e rodava até certo ponto, ele validava o formulario, mas não mandava os dados para o banco… Tá complicado o negocio aqui… Abraços
14/05/10 às 11:42
DAVID, poderia me auxiliar? Aqui no meu deu quase tudo certo, só um pequeno probleminha. As combos estão mostrando as palavras que possuem acento e “ç” com caracteres estranhos.
Por exemplo:
Convênios : está mostrando “CONV?IOS”
Administração : mostra “ADMINISTRA?O”
Subsídio Técnico : aparece na combo “SUBS?IO T?NICO”
Já tentei várias coisas, nenhuma deu certo.
Estou usando ASP.
Agradeço muito sua ajuda e parabéns pela vídeo aula, ficou show de bola!!!
14/05/10 às 12:02
DAVID, esqueci de mencionar uma informação que pode ser importante.
Esse problema citado acima só ocorre nas combos dinâmicas (2 combos), na primeira combo está tudo ok.
Abraço!
14/05/10 às 12:27
DAVID, já resolvi o problema.
Caso alguém apareça com o mesmo problema, é só colocar o seguinte comando na página em que consta o select que busca os dados da combo:
Response.Charset=”ISO-8859-1″
Parabéns pelo seu trabalho.
Obrigado pela atenção.
15/05/10 às 20:13
@Marcio Vinicius, ele não está cadastrando os dados no Banco de dados?
16/05/10 às 13:15
Caramba! Muito bom, parabéns mesmo!
17/05/10 às 7:46
Bom dia David, segue abaixo o link para visualizar o código do enviar.php.
http://pastebin.com/03ZGmURy
Att,
Thyago
17/05/10 às 8:49
@Thyago, primeira vc criará um arquivo chamado cidades_estados.php, e colocará aquela função. Depois, no seu arquivo enviar, vc chamará aquela função, antes incluindo no enviar.php, ai depois chamando a função. Para chamar a função, basta colocar o nome da função + os parametros exigidos :
http://pastebin.com/GP8abicr
31/05/10 às 11:56
Muito Legal! Obrigado!
16/06/10 às 22:28
David, boa-noite! Em primeiro lugar quero parabenizá-lo pelo tuto, você tem uma ótima didática.
Gostaria de uma ajuda, caso fosse possível. Bom! Ao clicar em uma cidade, desejo que apareça um formulário de cadastro, tendo este um campo oculto com o código da cidade, código esse passado no momento da seleção da cidade, para que quando o usuário clicar no botão enviar o cadastro seja feito.
Espero que eu tenha sido claro…
Agradeço antecipado.
17/06/10 às 8:40
@Ricardo, vc pode retornar qualquer valor para qualquer elemento. VC pode realizar o mesmo procedimento, de escolher a cidade, fazer uma pesquisa em algum arquivo e retorna o formulário. E para indicar onde será inserido o formulário, vc faz na hora de retornar o valor:
$.post(“form-cidade.php”,
{‘id’ : $(this).val()},
function(valor){
$(“#div_recebe”).html(valor)
});
17/06/10 às 18:06
David CHC, peguei a manha da coisa, FUNFOU LEGAL, valeu Brother.
28/06/10 às 8:28
Ola david, excelente videoaula…
é possivel depois de selecionar o estado, ao selecionar uma cidade, aparecer uma nova pagina com informações dessa cidade??
Por exemplo,
Selecionando o estado do Rio de janeiro, e a cidade do Rio de Janeiro, teriamos um dysplay com a informação sobre essa cidade.
abrigado,
david
28/06/10 às 10:22
Então xará, então, vc quer enviar essas informações selecionadas para outra páginas, ou vc quer ao selecionar a cidade, aparecesse o conteudo abaixo sobre essa cidade (com ajax)?
28/06/10 às 12:20
hello,
queria que ao selecionar a cidade no 2 combo, aparecesse o conteudo abaixo sobre a cidade selecionada.
david
28/06/10 às 12:24
Nesse caso, vc vai apenas repetir o codigo para selecionar o estado. Só vai informar o arquivo diferente onde será realizado a pesquisa, na função do $.post, vc indica aonde será enviado
$.post(“pesquisa.php” , {
‘idCidade’ : $(this).val()
}, function(valor){
$(“#ElementoOndeEuquero”).html(valor)
})
NO caso , já tá pressuposto q vc já resgatou o valor da cidade, da mesma do estado, informou o arquivo onde realizará a pesquisa, no exemplo pesquisa.php, e e inseriu na div, ou elemento q vc deseja essa resposta do arquivo pesquisa.php
21/07/10 às 16:26
Olá David, estou com um probleminha, eu testei o seu código e funcionou legal, só que quando eu coloquei ele dentro de um formulário que eu criei com o DW CS3 através da developer toobox, usando o “insert record for wizard” ele carrega os estados, mostra Carregando… no combo das cidades mas daí ele fica em branco. Gostaria que vc me desse uma dica do que pode estar acontecento, pq sou iniciante no php e javascript.
21/07/10 às 17:28
@Alan Rici, eu não uso mais o dreamweaver ( essa parte q ele gera o codigo, eu nunca usei, rs). Tente criar manualmente ,é até melhor pra vc aprender os comandos;
22/07/10 às 8:32
Beleza David, vou tentar manualmente..vlw
27/07/10 às 15:50
Muito bem David, funciona direitinho…
porem eu tentei fazer com o <input type="button" e nao funcionou…
segue o jquery
$(document).read(function(){
$("#buscar").click(function(){
$("#res_busca").html('Carregando…’);
$.post(“carrega_busca_relacionado.php”,
{tipo:$(“select[name=tipo_busca]“).val()},
{nome:$(“input[name=nome_busca]“).val()},
function(valor){
$(“select[name=res_busca]“).html(valor);
}
)
});
});
27/07/10 às 20:29
@André, no caso vc está montando errado, na hora de enviar as variaveis com os valores para pagina carrega_busca_relacionado.php
$(document).read(function(){ $("#buscar").click(function(){ $("#res_busca").html('Carregando…'); $.post('carrega_busca_relacionado.php', { tipo:$('select[name=tipo_busca]').val(), nome:$('input[name=nome_busca]').val() } function(valor){ $('select[name=res_busca]').html(valor); }); }); });4/08/10 às 12:14
David a aula nao está mais disponível? poderia me anviar o vídeo por favor,? já usei uma vez e me ajudou muito mas agora preciso novamente e o video nao está aparecenedo! muito obrigado!
att,
4/08/10 às 13:03
@jose vicente, é um problema no videolog, daqui a pouco volta ao normal
15/08/10 às 9:45
Muito bem David, funciona direitinho…
só to tendo um probleminha na listagem das cidades, ele ta retornando todas as cidades, no entanto ta aparecendo em apenas 1 opção, e eu usei o seu código exatamente igual e ta aparecendo em apenas 1 opção… no google chrome fica legal, agora no IE e no FF da esse erro que disse acima..
o que será que pode ser?!
vlw
15/08/10 às 11:08
@Matheus, tente usar o Firebug do firefox para ver se tá retornando algum erro no próprio PHP, na hora de retornar as cidades correspondentes.
15/08/10 às 12:39
David, nao sei usar mto bem essas funcionalidades do firebug…
da uma olhada ai como q ta acontecendo por favor…
me manda uma resposta no email que te passo o link e a senha..
vlw
15/08/10 às 12:41
@Matheus, vc terá q publicar esse conteudo em algum lugar, veja alguma hospedagem gratuita, e publique o conteudo, depois me passa o link pra ver o q pode tá ocorrendo.
15/08/10 às 13:56
eu tenho postado no meu dominio.
vieiramatheus.com.br/cfcleblon
admin/admin
menu alunos
novo
por enquanto só essa tela..
será pq ta orientado a objeto?
agora to saindo, quando voltar respondo..
vlw
15/08/10 às 14:08
@Matheus, o problema é q vc não está retornando no option:
while($ln = mysql_fetch_assoc($query)){ echo '<option value="'.$ln['cod_cidade'].'">'.$ln['cidade'].'</option>'; }Está apenas retornando o valor só da cidade. No caso, ela tem q estar dentro de option, para inserir na tag select .
16/08/10 às 8:31
então, na verdade estou mandando um Option sim…
o meu código do cidade.php ta assim..
buscarTodosEstado($estado);
$contadorCidade = count($objCidades);
for($z = 0; $z get(“nome”);
echo ‘get(“nome”).’”>’.$objCidade->get(“nome”).”;
}
?>
onde que ta o problema ai?!
será que pode ser algum problema no formulario?!
vlw
16/08/10 às 8:34
http://pastebin.com/SEHqPfw5
mais fácil, ta ai o código do cidade.php..
17/08/10 às 9:49
@Matheus, vendo o resultado, vc está incluindo tbm meta tag, tente tirá-lo:
18/08/10 às 8:23
é parece que era só esse detalhe msm..hehe
e o melhor é que nem comentando ele dava certo…
tive que apagar msm…
vlw
23/08/10 às 1:23
David, boa noite.
Ficou muito bom o código.
Porém, como faço para passar dois parâmetros?
Por exemplo:
Combo1 = Cidade
Combo2 = Local
Combo3 = Linha
Seleciono a cidade no Combo1 e depois que seleciono o local no Combo2, ele popula o Combo3 com os parâmetros dos Combos 1 e 2.
Pois minha tabela no bd tem a seguinte estrutura:
cmp_cidade, cmp_local, cmp_linha
Não sei se fui bem claro.
Valew!
23/08/10 às 7:54
@Rodrigo, a cada combo q vc precisa resgatar pra retornar algo, vc terá q repetir o mesmo script. NO caso, vc fará duas vezes. Quando selecionar o primeiro combo, e depois para selecionar o segundo combo
23/08/10 às 9:40
David,
Desculpa minha ignorância, mas teria como você postar como ficaria o código? Pois não estou conseguindo entender.
Muito obrigado!
23/08/10 às 9:46
@Rodrigo , seria algo assim:
$("select[name=opcao1]").change(function(){ //Faz a primeira execução, e retorna no select na opção2 }); //Agora , quando seleciona a opcao2 $("select[name=opcao2]").change(function(){ //Faz a parte se elecionar o select como opcao2e retorna no select na opção3 });E assim sucessivamente.
23/08/10 às 14:39
David, boa tarde.
Segue abaixo o meu código.
Não está dando certo… rs… Onde estou errando? Ou está tudo errado? rsrs
Abraços…
$(document).ready(function(){
$(“select[name=cboLocal]“).change(
function() {
if($(this).val() == “selecione”) {
} else {
$(“select[name=cboLinha]“).load(‘linhas.php?cmp_cidade=’+ $(“select[name=cboCidade]“).val() +’&cmp_local=’ + $(“select[name=cboLocal]“).val());
}
}
);
});
———————————————————————
arquivo linhas.php
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("db_visualbusvale");
$cidade = $_POST['cboCidade'];
$local = $_POST['cboLocal'];
$sql = "SELECT cmp_linha FROM tbl_linhas WHERE cmp_cidade = '$cidade' AND cmp_local = '$local' ORDER BY cmp_linha ASC";
$qr = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($qr) == 0){
echo '’.htmlentities(‘Selecione ——————————————–’).”;
}else{
while($ln = mysql_fetch_assoc($qr)){
echo ”.$ln['cmp_linha'].”;
}
}
?>
23/08/10 às 14:43
David, ficou errado…
Segue os links pra você dar uma olhada no código:
JavaScript
http://pastebin.com/FUuTaxVa
linhas.php
http://pastebin.com/mZ8dWtJV
23/08/10 às 14:56
@Rodrigo , no caso vc quer pegar 3 select ao mesmo tempo. Mas no caso, para ter a segunda select, não precisará determinar a 1?
exemplo:
Escolho um item da select 1
Mostra os itens na select2
Depois escolha o item da select 2
E mostra os itens da select 3
Não seria isso q vc tá tentando fazer?
23/08/10 às 15:12
Olá David.
Não. Na verdade, os selects 1 e 2 já são pré determinados, sem serem alimentados pelo banco.
Porém o select 3, precisa do valor do select 1 para o campo “cidade” e o valor do select 2 para o campo “local” para executar a busca no banco de dados e carregar o select 3 com os dados que atenderem as condições dos selects 1 e 2.
Não sei se fui bem claro…
Obrigado.
23/08/10 às 15:24
@Rodrigo , no caso, o quando vc seleciona o select 2, ele tem q pegar o select1, e ai assim fazer a pesquisa, e o resultado será o select 3. NO caso darei o nome de opcao1, opcao2, opcao3:
$("select[name=opcao2]").change(function(){ //pega o valor da select 1 var opcao1 = $("select[name=opcao1] option:selected").val() //pega o valor da select2 var opcao2 = $(this).val(); //ao faz o metodo post, pra enviando as variaveis para o arquivo linha.php $.post("linha.php", { cmp_cidade : opcao1, cmp_local : opcao2 }, function(retorno){ $("select[name=opcao3]").html(retorno); }); });23/08/10 às 18:35
David,
Ainda não está dando certo.
Segue o meu código completo da página de cadastro com o script JQuery
http://pastebin.com/KSgSjA49
e o código da minha página em php “linhas.php” para fazer a busca no BD
http://pastebin.com/byT0PFC8
a estrutura do BD é a seguinte:
cmp_cidade | cmp_local | cmp_linha
Exemplo:
Taubate | Painel | Linha 1
Taubate | Painel | Linha 2
Cacapava | Painel | Linha 1
Cacapava | Painel | Linha 2
Cacapava | Externo | Linha 1
Desde já, muito obrigado.
23/08/10 às 18:48
@Rodrigo, não precisa passa o sinal de interrogação no nome do arquivo. Antes, tente verificar se está resgatando o valor corretamente, no caso coloque um alert, pra ver se está resgatando algum valor quando seleciona no select na cidade.
var opcao1 = $("select[name=cboCidade] option:selected").val(); var opcao2 = $(this).val(); alert(opcao1+opcao2);23/08/10 às 18:58
David,
Coloquei o alert e está resgatando os valores corretamente. E também já retirei o “?” e mesmo assim, fica em branco.
Obrigado.
23/08/10 às 19:08
@Rodrigo, tente assim: http://pastebin.com/AVkbC9CK
24/08/10 às 12:21
David,
Descobri minha falha…
Eu tinha renomeado o meu BD no servidor e não troquei o nome no arquivo linhas.php.
Total inexperiência. rs
Valew mesmo!!!!
Muito obrigado…
FUNCIONOU PERFEITAMENTE!!!! PARABÉNS!!!
28/08/10 às 15:03
Ola… mt bom funciona + no meu caso n esta funcionando…
seguinte eu tenho as combos de estado, cidade e bairro… consegui fazer todas funcionar com esse jquery… porem quando eu gravo… os values vao vazios… o unico que aparece eh o do estado q foi incluido pelo while… ja cidade e bairro nao esta pegando o value (ids) o q posso fazer??? vlw…..
28/08/10 às 15:16
@Luiz Carlos, coloque o codigo no pastebin.com, e depois passa o link, pra dá uma olhada.