Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

11closed

select relacionado a outro select

Recommended Posts

ola

 

tenho varios select um relacionado a outro, tipo depende de qual opção for escolhida aparecera tal select. ou input

e o select so deve aparecer se tal opção for escolhida se ñ eu nen aparece

quero fazer por onchange .

 

alguem sabe onde tem um script assim ??

 

como eu posso fazer isso ?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza

<li>categoria*: <select name="categoria" id="categoria" >
      <option>Filmes</option>
      <option>seriados</option>
     </select>
</li>

se Filme for selecionado aparecera o select filmes em baixo.

 

<li>Tipo*: <select name="filmes" id="filmes" >
      <option>2012</option>
      <option>300</option>
     </select>
</li>

se seriado for escolhido aparesera o select seriado

 

<li>Tipo*: <select name="seriados" id="seriados" >
      <option>Lost</option>
      <option>SobreNatural</option>
     </select>
</li>

tipo assim

Compartilhar este post


Link para o post
Compartilhar em outros sites


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Untitled Document</title>

</head>

 

<body>

<li>categoria*:

<select name="categoria" id="categoria" onchange="escolher(this.value)" >

<option value="filmes">Filmes</option>

<option value="seriados">seriados</option>

</select>

</li>

 

<label id="filmes" style="display:none">

<li>Tipo*: <select name="filmes">

<option>2012</option>

<option>300</option>

</select>

</li>

</label>

 

<label id="seriados" style="display:none">

<li>

Tipo*: <select name="seriados">

<option>Lost</option>

<option>SobreNatural</option>

</select>

</li>

</label>

 

<script type="text/javascript">

function escolher(valor)

{

if(document.getElementById("categoria").value == 'filmes')

{

document.getElementById('filmes').style.display = 'block';

document.getElementById('seriados').style.display = 'none';

}

else if(document.getElementById("categoria").value == 'seriados')

{

document.getElementById('seriados').style.display = 'block';

document.getElementById('filmes').style.display = 'none';

}

}

</script>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engraçado,

 

Fui olhar o seu código e notei q ele estava certo, porém naum funcionava no FF...

Então notei q o style display:block / none no caso funciona so com div e naum com label...

rssss

 

não sabia disso... To mesmo desatualizado desse mundo :( rsss

 

absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se forem muitos dados, esse display : none/block se torna inviável, e usar AJAX seria melhor:

 

Dá uma olhada nesse exemplo que fiz em jQuery:

http://forum.imasters.com.br/index.php?/topic/365795-combos-dependentes-ajax-jquery/

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola tenho outra duvidas no codigo que o dee passou

 

no script que eu to fazendo todos foumularios são obrigatorios se eu coloco um if assim para cada um dos formularios.

 

if($categoria == ""){
	$erro[6] = "O Formulário categoria é obrigatório </br>";
}
um formulario dará o erro de "formulario obrigatorio".

 

ex: se eu escolher no formulario

categoria = Filmes , e no filme escolhe 300

os formularios categoria e filmes estão preenchidos mais o formulario seriados fica vazil e da o erro de formulario obrigatorio

 

como eu faço para deixar todos formularios que esteja block for obrigatorios ?

 

alguem tem alguma idéia ???

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá com uma cara de gambiarra gigantesca..

mas já que você tá validando por php, e tá usando esse esquema de display... você vai precisar de algum 'controlador' para saber se está com 'none ou block'.

 

pode criar um hidden, e então setar o valor dele na mesma hora que você faz o none/block, e então no php, ler esse hidden, e ai só validar oque realmente precisar.

Mas é oque eu disse, baita gambi.. hein?!

 

se desativar o Javascript, simplesmente não funciona nada, e a validação trava.

existem várias formas de se fazer a mesma coisa, umas mais 'bonitas' outras menos ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa:

Se forem muitos dados, esse display : none/block se torna inviável, e usar AJAX seria melhor:

 

Dá uma olhada nesse exemplo que fiz em jQuery:

http://forum.imasters.com.br/index.php?/topic/365795-combos-dependentes-ajax-jquery/

 

atentando à detalhes como:

faça o segundo combo trazer todas as informações, assim se o suporte à JS estiver desabilitado, o usuário não perde a navegação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara.

 

você pode fazer validação disso da seguinte forma:

if ($categoria){ //se categoria foi postada

         if ($filme && $seriado)//se filme postado e seriado tb (essa validaçao tb pode ser filme = "" ou filme = null... naum me recordo como é em php)
            $erro[6] = "2 formularios preenchidos </br>";
         else if (!$filme && !$seriado)//se filme naum postado e seriado tb naum
             $erro[6] = "Nenhum form preenchido </br>";
         else
              "faça o que deve ser feito ou deixe passar sem erro"

}else  $erro[6] = "Categoria naum selecionada </br>";
Naum precisa criar um campo hidden ou arrumar outra variavel para isso, ja que você ja possui os 2 valores sendo passados por post e ainda por cima possuiem nomes diferentes ..

 

Espero ter ajudado amigo..

 

Abssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola

 

olha eu tava fazendo assim .. mudei umas coisas acrecentei formularios

 

if($categoria == "filme") {
  if ($filme == "") {
   $erro[5] = "O Formulário filme é obrigatório </br>";
  }
  else if ($filme == "1") {
   if ($filme1 == ""){
    $erro[5] = "O Formulário filme 1 é obrigatório </br>";
   }
  }
  else if ($filme == "2") {
   if ($filme1 == ""){
    $erro[5] = "O Formulário filme 1 é obrigatório </br>";
   }
   if ($filme2 == ""){
    $erro[5] = "O Formulário filme 2 é obrigatório </br>";
   }
  }
  else if ($filme == "3") {
   if ($filme1 == ""){
    $erro[5] = "O Formulário filme 1 é obrigatório </br>";
   }
   if ($filme2 == ""){
    $erro[5] = "O Formulário filme 2 é obrigatório </br>";
   }
   if ($filme3 == ""){
    $erro[5] = "O Formulário filme 3 é obrigatório </br>";
   }
  }
  else if ($filme == "4") {
   if ($filme1 == ""){
    $erro[5] = "O Formulário filme 1 é obrigatório </br>";
   }
   if ($filme2 == ""){
    $erro[5] = "O Formulário filme 2 é obrigatório </br>";
   }
   if ($filme3 == ""){
    $erro[5] = "O Formulário filme 3 é obrigatório </br>";
   }
   if ($filme4 == ""){
    $erro[5] = "O Formulário filme 4 é obrigatório </br>";
   }
  }
  else if ($filme == "5") {
   if ($filme1 == ""){
    $erro[5] = "O Formulário filme 1 é obrigatório </br>";
   }
   if ($filme2 == ""){
    $erro[5] = "O Formulário filme 2 é obrigatório </br>";
   }
   if ($filme3 == ""){
    $erro[5] = "O Formulário filme 3 é obrigatório </br>";
   }
   if ($filme4 == ""){
    $erro[5] = "O Formulário filme 4 é obrigatório </br>";
   }
   if ($filme5 == ""){
    $erro[5] = "O Formulário filme 5 é obrigatório </br>";
   }
  }
 }

assim deu certo se no formulario categoria eu escolhe filme aparecera o formulario "qts filme" e o name dele é "filme" se ele estiver vazil da o erro certinho se eu colocar por ex: "3", aparecera tres input em baixo com os names "filme1", "filme2" e "filme3" se eu ñ preencher nenhum desses input e clica no botão, aparece o erro

 

O Formulario filme 3 é obrigatorio.

 

gostaria que aparecece os 3 erros tipo assim

 

O Formulario filme 1 é obrigatorio.

O Formulario filme 2 é obrigatorio.

O Formulario filme 3 é obrigatorio.

 

oq eu tenho que faze ?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola

 

é possivel fazer aparecer os 3 erros, pq dessa forma so aparece 1 erro, eu tava tentando de outras forma mais ñ consigui fazer aparecer todos os erros, sera que é porq os ifs estão tudo dentro de outro if. por isso que da apenas um resultado.. ?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha opinião, isso está bem gambiarrento. Remendo em cima de remendo... mas a sua dúvida não é mais Javascript ne?!

 

prefere que eu mova o topico para php? ou split esse trecho da dúvida de validação, que já não tem mais relação com o escopo inicial da dúvida do tópico ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.