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

Fabriziopt

Select para mudar a layer

20 mensagens neste tópico

Boas

Gostava de fazer um select com vários option em que o utilizador escolhe o que pretende e depois a layer abaixo muda.

Para isso tentei um swits; case; mas como é que faço que quando a opção selecionada o utilizador nem precisa de selccionar um botão submit ou outro botão

Vou mostrar o código que tenho:

<SELECT NAME="artigo">
    <OPTION>Escolha o artigo
    <OPTION>Area 51
    <option>Guerra das energias alternativas(carros) 
    <OPTION>Hackers
    <OPTION>Maiores Descobertas
    <OPTION>Maiores Segredos
    <OPTION>Superhumanos
    <OPTION>Orgasmo feminino
    <OPTION>Vaticano
  </SELECT>

<?php
switch($_GET['artigo']){  
  case "area51":   
       include "area51.html";  
	         break; 
			    case "guerradosautomoveis":    
			     include "guerradosautomoveis.html";   
				 break; 
				 case "hacker":    
			     include "hacker.txt";    
				     break;
					 case "superhumanos":
					 include "superhumanos.html";    
				     break;  
					    case "segredos":
					 include "segredos.html";    
				     break;  
					 case "descobertas":
					 include "descobertas.html";    
				     break;  
					 case "orgasmo":
					 include "orgasmo.html";    
				     break; 
					 case "vaticano":
					 include "vaticano.html";    
				     break;   
							 }
?>

Eu ainda não testei o código mas não tenho a certeza se dá...Alguém me pode ver se tá certeza.

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

esse html está errado...

<form action="algures.php" method="get">

<SELECT NAME="artigo">

<OPTION VALUE="Hackers">Hackers

etc,etc

  </SELECT>

<input type="submit">

</form>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fil79, tu escreveste uma mistura de HTML com XHTML lol

<form action="algures.php" method="get">

<select name="artigo">
<option value="hackers">Hackers</option>
<option value="oi">Oi?</option>
</select>

<input type="submit" value="Mostrar o artigo" />
</form>

O PHP está correcto mas está mal indentado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desde que funcione...  :biggrin:

É por afirmações como estas que os programadores web são ridicularizados. ;)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código funciona em todos os browsers ou seja cumpre o seu propósito. Agora essa dos programadores web serem  ridicularizados?! nunca o senti, se tu o sentes já é problema teu

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

esse html está errado...

<form action="algures.php" method="get">

<SELECT NAME="artigo">

<OPTION VALUE="Hackers">Hackers

etc,etc

  </SELECT>

<input type="submit">

</form>

Tens razão xD

Desculpa ja não trabalho com selects há muito tempo xD

Mas é assim dessa maneira tinha de carregar num botão, enviar para uma página e assim é que mudava.

O que eu queria é que logo ao seleccionar muda-se, sem carregar em botão.

E o PHP fazia com que o reload fosse só na parte que queria

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código funciona em todos os browsers ou seja cumpre o seu propósito. Agora essa dos programadores web serem  ridicularizados?! nunca o senti, se tu o sentes já é problema teu

Boa atitude sim senhor...  :thumbdown:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

I second Nazgulled's irony. Nunca ouviste dizer "programação web é para fracos que não sabem {inserir nome de linguagem não vocacionada apenas para web}" ou "na web até a minha avó trabalhava" e coisas assim? Nunca ouviste dizer que o mercado da web está péssimo? Eu explico-te porque está péssimo. Está péssimo porque freelancers que fazem sites que "funcionam em todos os browser" estão-se pura e simplesmente cagando para coisas simples como a validação do documento de acordo com uma especificação standard e fazem o serviço por 150€, enquanto que uma pessoa que queira fazer com qualidade cobra o dobro ou mais mas não o faz porque não consegue concorrer com estas pechinchas. E depois, pessoas com deficiências visuais querem ir a um site mas não podem porque o programador não fez as coisas como deveria ser e está limitado. E depois os web developers comem todos por tabela porque dificulta a integração de pessoas com deficiências na sociedade e o diabo-a-sete. O teu erro foi apenas desleixe porque era um exemplo para o fórum, mas quem o faz para o fórum, habitua-se a fazer em todo o lado. Por acaso, não foi um desleixe muito sério (devido às semelhanças entre HTML e XHTML e a tolerância dos parsers dos browser), mas podia ter sido pior. ;)

É por este tipo de coisas que eu fico "enjoado" ao ver afirmações como a tua ali em cima, transparecem que isto é tudo favas contadas, que é chegar aqui e já está. As coisas não são assim, e as pessoas têm que ver as coisas como elas são. :)

Anyway, em XHTML os nomes das tags são todos em letras minúsculas, ao contrário de HTML que é tudo em maiúsculas. Outra coisa que não respeitaste foi a forma de fechar a tag input em XHTML. Em XHTML, tags como a input e a img são self-closing como no XML para tornar o parsing mais simples e eficiente. Ou seja, deverias ter fechado com " />" e não como ">". Se não tivesses a tolerância que as engines dos browsers têm, estavas em*rdado. Ah, e ainda há outra "mariquice", que é o valor do atributo method do form, que deve ser escrito em maiúsculas (GET e não get). Outra coisa, que sei que foi apenas porque copiaste e colaste e não prestaste muita atenção, não fechaste a tag option.

PS: fil79, não te sintas ofendido por qualquer coisa que tenha dito, nem penses que estou quase a dar-te uma carrada de porrada (:D), mas tinha que passar esta mensagem. :D

esse html está errado...

<form action="algures.php" method="get">

<SELECT NAME="artigo">

<OPTION VALUE="Hackers">Hackers

etc,etc

  </SELECT>

<input type="submit">

</form>

Tens razão xD

Desculpa ja não trabalho com selects há muito tempo xD

Mas é assim dessa maneira tinha de carregar num botão, enviar para uma página e assim é que mudava.

O que eu queria é que logo ao seleccionar muda-se, sem carregar em botão.

E o PHP fazia com que o reload fosse só na parte que queria

Abraço

Podes fazer isso usando o evento onclick.

<select value="endereco.html" onclick="window.location = this.value;">Hackers</select>

Não sei se o this.value funciona pois já não mexo com DOM há uns tempos. :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

I second Nazgulled's irony. Nunca ouviste dizer "programação web é para fracos que não sabem {inserir nome de linguagem não vocacionada apenas para web}" ou "na web até a minha avó trabalhava" e coisas assim? Nunca ouviste dizer que o mercado da web está péssimo? Eu explico-te porque está péssimo. Está péssimo porque freelancers que fazem sites que "funcionam em todos os browser" estão-se pura e simplesmente cagando para coisas simples como a validação do documento de acordo com uma especificação standard e fazem o serviço por 150€, enquanto que uma pessoa que queira fazer com qualidade cobra o dobro ou mais mas não o faz porque não consegue concorrer com estas pechinchas. E depois, pessoas com deficiências visuais querem ir a um site mas não podem porque o programador não fez as coisas como deveria ser e está limitado. E depois os web developers comem todos por tabela porque dificulta a integração de pessoas com deficiências na sociedade e o diabo-a-sete. O teu erro foi apenas desleixe porque era um exemplo para o fórum, mas quem o faz para o fórum, habitua-se a fazer em todo o lado. Por acaso, não foi um desleixe muito sério (devido às semelhanças entre HTML e XHTML e a tolerância dos parsers dos browser), mas podia ter sido pior. ;)

É por este tipo de coisas que eu fico "enjoado" ao ver afirmações como a tua ali em cima, transparecem que isto é tudo favas contadas, que é chegar aqui e já está. As coisas não são assim, e as pessoas têm que ver as coisas como elas são. :cheesygrin:

Anyway, em XHTML os nomes das tags são todos em letras minúsculas, ao contrário de HTML que é tudo em maiúsculas. Outra coisa que não respeitaste foi a forma de fechar a tag input em XHTML. Em XHTML, tags como a input e a img são self-closing como no XML para tornar o parsing mais simples e eficiente. Ou seja, deverias ter fechado com " />" e não como ">". Se não tivesses a tolerância que as engines dos browsers têm, estavas em*rdado. Ah, e ainda há outra "mariquice", que é o valor do atributo method do form, que deve ser escrito em maiúsculas (GET e não get). Outra coisa, que sei que foi apenas porque copiaste e colaste e não prestaste muita atenção, não fechaste a tag option.

PS: fil79, não te sintas ofendido por qualquer coisa que tenha dito, nem penses que estou quase a dar-te uma carrada de porrada (:)), mas tinha que passar esta mensagem. :D

em primeiro lugar quero dizer que obviamente que não fico ofendido, isto é um fórum, serve precisamente para discutir ideias, algo que eu até aprecio muito....depois esse tipo de expressãoes do tipo "programação web é para fracos " ou "até a minha avó trabalhava" como te disse anteriormente passam-me completamente ao lado..acho que o importante é gostar-se do que faz...eu gosto...agora se tens  complexos de inferioridade podes ver nisso um problema...agora o facto de me ter esquecido da tag  </option> e de fechar assim o input /> num código que serve de exemplo não te dá o direito de vires com lições de moral (uma coisa é debater) sobre preços, acessibilidade do site,  etc  assuntos fora do tópico e que tu  não sabes qual a minha opinião ....poiis como te disse o facto de ter esquecido de fechar duas tags  não quer dizer que me esteja a cagar para a acessibilidade ( apesar de infelizmente estarem-se quase todos) e que sou a favor dos tais 150 euros (absurdos) por um site).

Bons scripts :D

P.s.- Nem o  Google cumpre os tais "standards"...40 erros...talvez seja melhor usares outro motor de busca que não te deixe tão enjoado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em primeiro lugar quero dizer que obviamente que não fico ofendido, isto é um fórum, serve precisamente para discutir ideias, algo que eu até aprecio muito....depois esse tipo de expressãoes do tipo "programação web é para fracos " ou "até a minha avó trabalhava" como te disse anteriormente passam-me completamente ao lado..acho que o importante é gostar-se do que faz...eu gosto...agora se tens  complexos de inferioridade podes ver nisso um problema...agora o facto de me ter esquecido da tag  </option> e de fechar assim o input /> num código que serve de exemplo não te dá o direito de vires com lições de moral (uma coisa é debater) sobre preços, acessibilidade do site,  etc  assuntos fora do tópico e que tu  não sabes qual a minha opinião ....poiis como te disse o facto de ter esquecido de fechar duas tags  não quer dizer que me esteja a cagar para a acessibilidade ( apesar de infelizmente estarem-se quase todos) e que sou a favor dos tais 150 euros (absurdos) por um site).

Não é um complexo de inferioridade, é fazerem pouco daquilo que faço! É o mesmo que tu fazeres um trabalho da universidade extremamente complexo e começarem a dizer-te que aquilo era fácil e que toda a gente o fazia com a perna às costas. Em relação ao />, não é uma simples mariquice, num browser para invisuais faz toda a diferença. e o </option> eu sei que foi esquecimento, apenas realcei isso. E falei do preço porque muita gente começa como tu a dizer que faz com uma perna às costas e entra no mercado, sem pensarem no que fazem, não disse que tu eras assim. :P Como eu disse, eu só queria passar a mensagem, e peguei nos teus erros para o fazer. :D

P.s.- Nem o  Google cumpre os tais "standards"...40 erros...talvez seja melhor usares outro motor de busca que não te deixe tão enjoado

No entanto, disponibilizam APIs que respeitam standards. :D Anyway, a mim como utilizador não me faz diferença, como developer faz. Há muita coisa que se pode fazer com uma página usando DOM e não o consigo fazer com erros de sintaxe, sendo obrigado a usar coisas como regex.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E falei do preço porque muita gente começa como tu a dizer que faz com uma perna às costas e entra no mercado, sem pensarem no que fazem, não disse que tu eras assim. :P Como eu disse, eu só queria passar a mensagem, e peguei nos teus erros para o fazer. :D

já li e reli este tópico e em nenhum post meu vejo a dizer que um site ou algum trabalho dentro do desenvolvimento web se faz com uma perna ás costas...para alguém se tonar um bom webdeveloper precisa de alguns anos de experiência, de muitos sites, basicamente de muitas e muitas linhas de código digitadas....não sou presunçoso ao ponto de fazer afirmações desse género

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz uma coisa do genero a uns 2 anos..

Vou mostrar uma pequeno exemplo, e dps adaptas as tuas necessidades:

<?
if ($accao){
include $accao.".php";
}
?>

<form action="<? $PHP_SELF ?>" method="post" enctype="multipart/form-data">
<select onchange="submit(this.form)" name="accao">
	<option value="update">Update</option>
	<option value="select">Select</option>
</select>
</form>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E falei do preço porque muita gente começa como tu a dizer que faz com uma perna às costas e entra no mercado, sem pensarem no que fazem, não disse que tu eras assim. :P Como eu disse, eu só queria passar a mensagem, e peguei nos teus erros para o fazer. :D

já li e reli este tópico e em nenhum post meu vejo a dizer que um site ou algum trabalho dentro do desenvolvimento web se faz com uma perna ás costas...para alguém se tonar um bom webdeveloper precisa de alguns anos de experiência, de muitos sites, basicamente de muitas e muitas linhas de código digitadas....não sou presunçoso ao ponto de fazer afirmações desse género

Enganei-me a escrever. *"começa como tu e depois começa a dizer que faz"
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

[quote name='Raminhos' timestamp='1199793086' post='158582']
<?
if ($accao){
include $accao.".php";
}
?>

Vulnerável a RFI (remote file include). Ler artigo de Vulnerabilidades em Aplicações Web da edição 11 da revista PROGRAMAR.

<form action="<? $PHP_SELF ?>" method="post" enctype="multipart/form-data">

Estás a pensar que a register_globals está on ao usares $PHP_SELF, deve-se usar $_SERVER['PHP_SELF'].
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E falei do preço porque muita gente começa como tu a dizer que faz com uma perna às costas e entra no mercado, sem pensarem no que fazem, não disse que tu eras assim. :P Como eu disse, eu só queria passar a mensagem, e peguei nos teus erros para o fazer. :D

ok...foi um mal entendido...sem ressentimentos....:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

[quote name='Raminhos' timestamp='1199793086' post='158582']
<?
if ($accao){
include $accao.".php";
}
?>

Vulnerável a RFI (remote file include). Ler artigo de Vulnerabilidades em Aplicações Web da edição 11 da revista PROGRAMAR.

<form action="<? $PHP_SELF ?>" method="post" enctype="multipart/form-data">

Estás a pensar que a register_globals está on ao usares $PHP_SELF, deve-se usar $_SERVER['PHP_SELF'].

Eu so dei um exemplo para ele perceber 'a coisa', ate porque ele so queria um select q fizesse um submit automático on change :D

Em tempos qd comecei a dar uns toques de php, fiz muita burrada dessa...esses tipos de includes :P

Em relação às globals, nas minhas maquinas (so para as minhas coisas) tenho sempre on...facilita-me muito o trabalho :D

Abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação às globals, nas minhas maquinas (so para as minhas coisas) tenho sempre on...facilita-me muito o trabalho :D

Pois, e também abre vulnerabilidades. :P
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