ThinkBrunus Postado Fevereiro 8, 2009 Denunciar Share Postado Fevereiro 8, 2009 Olá a todos!Estou a tentar fazer um formulário com alguns selects, a minha questão/dúvida é a seguinte: quando um utilizador escolhe a opção do 1º select, os valores do select seguinte dependem da escolha do 1º select, por exemplo:marca: VW | Mercedes modelo: golf | C220 polo | C200Ou seja, se escolher a marca VW surgirá apenas os modelos da VW.Já fiz a query de ligação das duas tabela, mas acho que tenho de guardar o valor do 1º select.....se for assim, como poderei guardar o valor? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 _Guinho Postado Fevereiro 9, 2009 Denunciar Share Postado Fevereiro 9, 2009 Segue um exemplo:echo "<tr align='left'>"; echo "<td>Estado:</td>"; echo "<td>"; echo "<select name='id_estado' onChange=\"form.action='incluir.php'; form.submit();\">"; echo "<option value=''>Escolha</option>"; $sql_estado = mysql_query("SELECT * FROM estado ORDER BY estado"); while ($result_sql_estado = mysql_fetch_array($sql_estado)) { $result_id_estado = $result_sql_estado['id_estado']; $result_estado = $result_sql_estado['estado']; if ($id_estado == $result_id_estado) { echo "<option value='$result_id_estado' selected>$result_estado</option>"; } else { echo "<option value='$result_id_estado'>$result_estado</option>"; } } echo "</select>"; echo "</td>"; echo "</tr>"; echo "<tr align='left'>"; echo "<td>Municipio:</td>"; echo "<td>"; echo "<select name='id_municipio' onChange=\"form.action='incluir.php'; form.submit();\">"; echo "<option value=''>Escolha</option>"; $sql_municipio = mysql_query("SELECT * FROM municipio WHERE estado_id_estado = '$id_estado' ORDER BY municipio"); while ($result_sql_municipio = mysql_fetch_array($sql_municipio)) { $result_id_municipio = $result_sql_municipio['id_municipio']; $result_municipio = $result_sql_municipio['municipio']; if ($id_municipio == $result_id_municipio) { echo "<option value='$result_id_municipio' selected>$result_municipio</option>"; } else { echo "<option value='$result_id_municipio'>$result_municipio</option>"; } } echo "</select>"; echo "</td>"; echo "</tr>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ThinkBrunus Postado Fevereiro 9, 2009 Autor Denunciar Share Postado Fevereiro 9, 2009 (editado) Obrigado pelo exemplo, esclareceu-me algumas duvidas!No entanto, o include indicado no select, é para inserir que código?echo "<select name='id_municipio' onChange=\"form.action='incluir.php'; form.submit();\">";Esta parte não percebi....presumo que seja para enviar o valor do id para ser utilizado na combo a seguir.... Editado Fevereiro 9, 2009 por ThinkBrunus Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 9, 2009 Denunciar Share Postado Fevereiro 9, 2009 Isso dai é javascript, quando o valor do select mudar, o formulário é enviado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 _Guinho Postado Fevereiro 9, 2009 Denunciar Share Postado Fevereiro 9, 2009 Obrigado pelo exemplo, esclareceu-me algumas duvidas!No entanto, o include indicado no select, é para inserir que código?echo "<select name='id_municipio' onChange=\"form.action='incluir.php'; form.submit();\">";Esta parte não percebi....presumo que seja para enviar o valor do id para ser utilizado na combo a seguir....Posta seu código ai, fica mais fácil.Isso dai é javascript, quando o valor do select mudar, o formulário é enviado.Tem alguma opção que seja em PHP? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ThinkBrunus Postado Fevereiro 11, 2009 Autor Denunciar Share Postado Fevereiro 11, 2009 Já consegui fazer alguma coisa depois de algumas ajudas e pestanas queimadas!Apenas tou com um pequeno problema, ele está a colocar uma linha em branco entre os valores que vai buscar e apresenta na página....não estou a perceber o porquê.....Deixo o link para verem na prática o que se está a passar:http://thinkbrunus.pt.vuNão percebo o que seja, alguma dica agradeço!Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Fevereiro 11, 2009 Denunciar Share Postado Fevereiro 11, 2009 coloca seu codigo que fica mais facil ajudar...okays Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ThinkBrunus Postado Fevereiro 11, 2009 Autor Denunciar Share Postado Fevereiro 11, 2009 (editado) então aqui vai o códigoindex.php<html> <head> <script src="selectuser.js"></script> </head> <body> <form> <table width="60%" border="0"> <tr> <td width="25%"><select name="select_divisao" onChange="showUser(this.value)"> <option value="0" selected>Escolha a divisão ::::::</option> <?php $sql = mysql_query("SELECT * FROM divisao") or die("Query Error" . mysql_error()); while ($row = mysql_fetch_array($sql)){ echo "<option value=" . $row['id_divisao'] . ">" . $row['divisao'] . "</option>"; }; ?> </select></td> <td width="74%"><div id="txtHint"></div></td> </tr> </table> </form> </body> </html> getuser.php <?php $q=$_GET["q"]; //ligação teste $con = mysql_connect('localhost', 'root', ''); { die('Erro de ligação: ' . mysql_error()); } //ligação teste mysql_select_db("db_teste", $con); $sql="SELECT * FROM user WHERE id_divisao = '" . $q . "'"; $result = mysql_query($sql); echo "<select name'select_user'>"; while($row = mysql_fetch_array($result)){ echo "<option value = '" . $row['id_divisao'] . "'>" . $row['user'] . "<option>"; }; echo "</select>"; mysql_close($con); ?> selectuser.js var xmlHttp; function showUser(str){ xmlHttp=GetXmlHttpObject(); if (xmlHttp==null){ alert ("O browser não suporta protocolo HTTP Request"); return; } var url="getuser.php"; url=url+"?q="+str; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); } function stateChanged(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ document.getElementById("txtHint").innerHTML=xmlHttp.responseText; } } function GetXmlHttpObject(){ var xmlHttp=null; try{ // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e){ //Internet Explorer try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } Editado Fevereiro 11, 2009 por ThinkBrunus Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 _Guinho Postado Fevereiro 11, 2009 Denunciar Share Postado Fevereiro 11, 2009 faz tudo em uma pagina, só!segue um exemplo que executa a mesma página e da refresh cada vez que o estado é selecionado, modificando a cidade!index.php<html> <head> <title>EXEMPLO</title> </head> <body> <? //página com configurações do banco: include "../funcoes/configure.php"; //pegunta se existe o botao salvar/se o usuario tiver clicado if (isset($_POST['Salvar'])) { $id_estado = $_POST['id_estado']; $id_cidade = $_POST['id_cidade']; //aqui você pode salvar no banco, fazer validacoes, etc... } echo "Estado:<br>"; echo "<select name='id_estado' onChange=\"form.action='index.php'; form.submit();\">"; echo "<option value=''>Escolha</option>"; $sql_estado = mysql_query("SELECT * FROM estado ORDER BY estado"); while ($result_sql_estado = mysql_fetch_array($sql_estado)) { $result_id_estado = $result_sql_estado['id_estado']; $result_estado = $result_sql_estado['estado']; if ($id_estado == $result_id_estado) { echo "<option value='$result_id_estado' selected>$result_estado</option>"; } else { echo "<option value='$result_id_estado'>$result_estado</option>"; } } echo "</select>"; echo "Cidade:<br>"; echo "<select name='id_cidade'>"; echo "<option value=''>Escolha</option>"; $sql_cidade = mysql_query("SELECT * FROM cidade WHERE id_estado = $id_estado ORDER BY cidade"); while ($result_sql_cidade = mysql_fetch_array($sql_cidade)) { $result_id_cidade = $result_sql_cidade['id_cidade']; $result_cidade = $result_sql_cidade['cidade']; if ($id_cidade == $result_id_cidade) { echo "<option value='$result_id_cidade' selected>$result_cidade</option>"; } else { echo "<option value='$result_id_cidade'>$result_cidade</option>"; } } echo "</select>"; ?> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ThinkBrunus
Olá a todos!
Estou a tentar fazer um formulário com alguns selects, a minha questão/dúvida é a seguinte:
quando um utilizador escolhe a opção do 1º select, os valores do select seguinte dependem da escolha do 1º select, por exemplo:
marca: VW | Mercedes
modelo: golf | C220
polo | C200
Ou seja, se escolher a marca VW surgirá apenas os modelos da VW.
Já fiz a query de ligação das duas tabela, mas acho que tenho de guardar o valor do 1º select.....se for assim, como poderei guardar o valor?
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.