• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ark15

Dificuldades com Dropdown

7 mensagens neste tópico

Olá a todos os Membros,

Estou a desenvolver uma pesquisa avançada para a minha PAP mas tenho algumas duvidas que não consegui tirar no google e decidi vir aqui pedir ajuda/opnião.

Na pesquisa avançada tenho três campos, "Nome do Produto" (Tipo INPUT) campo "Categoria" (Tipo Select(menu dropdown)) e "Subcategoria"  (Tipo Select(menu dropdown)). O que foi , o cliente insere a palavra que deseja pesquisar , selecciona a categoria (Por exemplo"Informatica, audiovisual, Electrodomesticos etc") depois , quero que a subcategoria só fique "activa" quando o utilizador seleccione uma categoria pois cada categoria tem diferentes subcategorias. O meu problema esta que quando selecciono uma categoria , ele activa a Subcategoria (que é o que queria ) mas ao mesmo tempo ele faz a pesquisa sem eu clicar na subcategoria :/.

Vou passar a colocar o código para verem o que me refiro:

<table width="298" border="0">
		<form method="post">
  <tr>  <td width="108">Palavra : </td>  
       <td width="174"><INPUT name="palavra" onClick="ctl00_cphWork_hiddenField.value='1';"></td></tr><br />
<tr>
   <td> Categoria:</td><td> 
   				
                <select name="categ"  onChange="this.form.submit ('$subcateg;')" >
                    <option value="1">Electrodomésticos</option>
                    <option value="2">Audiovisual</option>
                    <option value="3" >Informática</option>
                    <option value="4">Música e filmes</option>
                    <option value="5">Comunicações</option>
                </select> </td>
  
    <tr>
    	<td>Subcategoria:
        </td><td>
        	<?
			if (isset($_POST["categ"]))
				{
					$categ = $_POST['categ'];
					if ($categ == 1)
						{
							//echo "1";
						}
					if ($categ == 2)
						{
							//echo "2";
						}
					if ($categ == 3)
						{
							//echo "3";
						}
					if ($categ == 4)
						{
							//echo "4";
						}
					if ($categ == 5)
						{
							//echo "5";
						}

					switch ($categ) 
					{
						case 1:
							echo "<select name= subcateg>";
							echo "<option>Fogões</option>";
							echo "<option>Varinhas</option>";
							echo "<option>Micro ondas</option>";
							echo "<option>Torradeira</option>";
							echo "</select>";
							break;
						case 2:
							echo "<select name= subcateg>";
							echo "<option>Plasmas</option>";
							echo "<option>Leitores de DVD</option>";
							echo "<option>Leitores Blue</option>";
							echo "<option>LCD</option>";
							echo "</select>";
							break;
						case 3:
							echo "<select name= subcateg>";
							echo "<option>Fontes</option>";
							echo "<option>Ram</option>";
							echo "<option>teclados</option>";
							echo "<option>Ratos</option>";
							echo "</select>";
							break;
						case 4:
							echo "<select name= subcateg>";
							echo "<option>Animação</option>";
							echo "<option>Musica</option>";
							echo "<option>Filmes</option>";
							echo "<option>Jogos</option>";
							echo "</select>";
							break;
						case 5:
							echo "<select name= subcateg>";
							echo "<option>Telemoveis</option>";
							echo "<option>GPS</option>";
							echo "<option>Vips</option>";
							echo "<option>Radios</option>";
							echo "</select>";
							break;

					}
					/*****/
				}
			else
				{	
					echo "<select disabled>";
				}
?>
		</td>
        
        <td>
       	 <td>  <INPUT type="submit" value="Pesquisar"></td></tr>	
        </td>
    </tr>
    </form>
</table>

   

Eu sei o que faz o código efectuar a pesquisa sozinho é esta linha :

<select name="categ"  onChange="this.form.submit ('$subcateg;')" >

   

Mas se tirar o onChange ele não me activará a subcategoria.

Obrigado desde já

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Basta trocares o javascript do onChange o this.form.submit, e colocares na subcategoria

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá yoda, mas assim não consigo "activar" a subcategoria. e eu tenho de primeiro escolher a categoria para depois activar a subcategoria comforme a escolha na categoria.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens de conseguir, basta dizeres por js que quando escolhes uma categoria, ele activar a subcategoria, e na subcategoria, quando escolhida, enviar o formulario

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podias me especificar com um exemplo se faz o favor ? é que não sei como fazer isso, ando a procura na net , mas sem grandes resultados.

Obrigado pela tua ajuda :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Uma forma é usares ajax para enviar o formulario que tens até à parte da categoria. Quando escolhes a categoria, ele envia por ajax a info do formulario por GET e utilizando ajax faz load apenas da parte da subcategoria para o local que queres. Depois disso é só por o this.form.submit no select das subcategorias, para que apenas quando escolhes esse ele envie o formulário. Não tenho tempo disponível agora para dar um exemplo prático.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

yoda.pt, obrigado pela sua ajuda. Fiz de outra maneira , atraves de cases e funciona perfeito :confused:

Obrigado pela sua sujestão

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora