Ir para conteúdo
Fórum Script Brasil
  • 0

problema passagem valor option select


ThinkBrunus

Pergunta

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

  • 0

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>";

Link para o comentário
Compartilhar em outros sites

  • 0

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 por ThinkBrunus
Link para o comentário
Compartilhar em outros sites

  • 0
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?

Link para o comentário
Compartilhar em outros sites

  • 0

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.vu

Não percebo o que seja, alguma dica agradeço!

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

então aqui vai o código

index.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 por ThinkBrunus
Link para o comentário
Compartilhar em outros sites

  • 0

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>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...