Bem pessoal eu tenho esse codigo ak,…
[code]
Cadastrar BairroSELECIONE O ESTADO : | |
BAIRRO : | |
QUeria saber como deixo o combo de estado dinamico…ao selecionar o estado as cidades apenas desse estado aparece no menu…
flws
Bem pessoal eu tenho esse codigo ak,…
[code]
Cadastrar BairroSELECIONE O ESTADO : | |
BAIRRO : | |
QUeria saber como deixo o combo de estado dinamico…ao selecionar o estado as cidades apenas desse estado aparece no menu…
flws
Você terá que efetuar outra consulta mas desta vez passará com parâmetro o estado que você escolheu no primeiro combo.
Então sua select tera uma clausula “WHERE” , ou seja:
select CIDADES where ESTADO = <estado escolhido no combo>
Simples na hora de tu montar o combo de cidade passe o código do estado que você selecionou no combo de estado.
Alguma coisa do tipo.
$sql = "SELECT cadastro, cidade FROM cad_cidade Where cd_estado = $VarivelCodigoQueVeioDoComboDeEstado;";
Tua tabela de estado se relaciona com esta de cidade né?
Flw.
Porque na parte selecione um estado eu n implementei nenhum codigo ainda…pq quando ele selecionar SP no combo as cidades so tem q ser de SP…como vou dar o refresh sem usar o botaum?
Cara não tem como fugir do refresh se não fores usar ajax.
Sem usar ajax tu pegaria o evento “onChange” do teu combo de estado. Faria fazer uma nova consulta no banco ou mais conhecido como um submit para que os dados sejam carregados novamente com os valores a partir do teu combo de estado.
Se quiseres usar ajax não sera preciso o refresh é bem mais legal e profissional, em contra partida precisa mais estudo. Hehe.
Se quiseres usar ajax da uma pesquisada em JSON.
Flw.
Usando JS…como ficaria ?
um exemplo por favor…
Cara em php não tenho nenhum exemplo.
Só utilizei em Java.
Mas tem alguns ai se quiseres dar uma olhada.
http://forum.ievolutionweb.com/index.php?showtopic=6871
http://www.guj.com.br/posts/list/62733.java
http://www.prototypejs.org/api
Exemplo em java
http://imasters.uol.com.br/artigo/4424/asp/carregando_uma_combo_a_partir_da_outra_utilizando_ajax/
Abraço
vou dar uma olhada ak…MAs pelo que q me parece o onChange vai no comando HTml da select…pra ele refazer a busca na 2 select neh?
Isso mesmo.
Use o evento onchange, crie uma função e uma ação filtrar mandando para a mesma página passando o código e montando a segunda combo
Combo 1 chamando a função Javascript
<select name='combo1' onChange="filtrar();" >
Javascript
function filtrar(){
document.forms[0].hidAction.value="filtrar";
document.forms[0].action="<? echo $PHP_SELF ?>";
document.forms[0].submit();
}
Montando a segunda Combo no PHP
<?php
if($hidAction== "filtrar"){
include "connect.php";
$sql = "SELECT campo1,campo2 FROM tabela where campo = $campo;"; //campo do form da combo 1
print "<td><select name='combo2' >";
$qry = mysql_query($sql);
while ($v = mysql_fetch_array($qry)){
print "<option value=$v[campo1]>$v[campo2]</option>";
}
}
não funcionou ainda…
<html>
<head>
<title>Cadastrar Bairro</title>
<script>
function filtrar(){
document.forms[0].hidAction.value="filtrar";
document.forms[0].action="<?php echo $PHP_SELF ?>";
document.forms[0].submit();
}
</script>
</head>
<body>
<form action='inserirBairro.php' method='POST'>
<table border='0' align='center'>
<tr>
<td>SELECIONE O ESTADO :
<select name='combo1' onChange="filtrar();" >
<?php
include "connect.php";
$sql = "SELECT estado.cod_uf,estado.nome_uf FROM ESTADO;";
$qry = mysql_query($sql,$connect);
while ($ve = mysql_fetch_array($qry)){
print "<option value=$ve[cod_uf]>$ve[nome_uf]</option>";
}
?>
</select></td>
<td>SELECIONE A CIDADE :
<?php
include "connect.php";
if($hidAction== "filtrar"){
$sql = "SELECT cad_cidade.cod_uf,cad_cidade.cidade,cad_cidade.cadastro,estado.cod_uf FROM cad_cidade,estado
where campo = $_POST[combo1];";
print "<td><select name='combo2' >";
$qry = mysql_query($sql);
while ($v = mysql_fetch_array($qry)){
print "<option value=$v[cadastro]>$v[cidade]</option>";
}
}
?>
</select>
</td>
</tr>
<tr>
<td>BAIRRO : <input type='text' name='bairro'></td>
</tr>
<tr>
<td><input type='Submit' value='Cadastrar Bairro'></td>
</table>
</body>
</html>
ops… no campo eu ja rokei por
cad_cidade.cod_uf = $_POST[combo1]
Não precisa repetir toda hora esse include do connect.php deixa somente no inicio da página, de um print na query e veja como esta sendo montada e jogue no seu banco dados e rode e veja o que a query retorna.
E sempre use aspas nos values dos campos para evitar problemas.
Bem com esse codigo agora…Se eu escolho o estado Clico no Submit ele retorna as cidades mais não deixa selecionado certo…
<html>
<head>
<title>Cadastrar Bairro</title>
</head>
<body>
<form action='frmCadastrarBairro.php?var=combo1' method='POST'>
<table border='0' align='center'>
<tr>
<td>SELECIONE O ESTADO :
<td> <select name='combo1' >
<?php
include "connect.php";
$sql = "SELECT estado.cod_uf,estado.nome_uf FROM ESTADO;";
$qry = mysql_query($sql,$connect);
while ($ve = mysql_fetch_array($qry)){
print "<option value=$ve[cod_uf]>$ve[nome_uf]</option>";
}
?>
</select></td>
<td>SELECIONE A CIDADE :</td>
<?php
include "connect.php";
if (isset($_GET['var'])){
$var = $_GET['var'];
}
if (isset($_POST['combo1'])){
$sql="SELECT cad_cidade.cod_uf,cad_cidade.cidade,cad_cidade.cadastro,estado.cod_uf
FROM cad_cidade,estado
WHERE cad_cidade.cod_uf = $_POST[combo1] and cad_cidade.cod_uf=estado.cod_uf;";
print "<td><select name='combo2' >";
$qry = mysql_query($sql);
while ($v = mysql_fetch_array($qry)){
print "<option value=$v[cadastro] selected>$v[cidade]</option>";
}
}
?>
</select>
</td>
</tr>
<tr>
<td>BAIRRO : <input type='text' name='bairro'></td>
</tr>
<tr>
<td><input type='Submit' value='Cadastrar Bairro'></td>
</table>
</body>
</html>
Agora precisa colocar um if na primeira combo dentro do <option value
<option value=$ve[cod_uf] <? if( $_POST['combo1'] == $ve[cod_uf] ) echo " selected" ?>>
Retire o selected da segunda combo se não vai jogar sempre na última cidade.
Valeu kra…
Php Super dinamico msm…hahah…eu eskço que posso colocar tag php em qualquer lugar…]
abraço!
funfo agora!