Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

List menu {resolvido}

Mensagens Recomendadas

bioshock

Estou a tentar fazer algo do género:

<div id="apDiv8">
  <form id="form1" name="form1" method="get" action="">
      <input type="text" name="q" id="q" />
    <select name="select" id="select">
      <option value=1>Procurar por: username</option>
      <option value=2>Procurar por: id</option>
           
      </select>
    <label>
        <input type="submit" name="button" id="button" value="Submit" />
    </label>
  </form>
</div>
<?php if (isset($_POST['button'])){
if ($valor == ($_POST["select[1]"])) {
die ('abre o user');
}else{
die ('abre o id');
}
}
?>

Mas sem sucesso, sugestões?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

Estou a tentar fazer algo do género:

if (isset($_POST['button']))
{
if ($valor == ($_POST["select[1]"]))
{
	die ('abre o user');
}
else
{
	die ('abre o id');
}
}

Mas sem sucesso, sugestões?

Os <select> e os <input> do tipo radio e checkbox chegam ao PHP de maneiras diferentes do que parece à primeira vista.

Só precisas de usar o name do componente; no caso de ser um select normal (isto é, uma combo) ou input do tipo radio do mesmo grupo, o valor que te chega é o valor seleccionado no momento. Isto é, só precisas de usar $_POST["select"] e confirmar se é igual a 1 ou 2.

Já agora, no caso do select ser do tipo lista, dando para seleccionar mais do que um item ou inputs do tipo checkbox (apesar do name destas precisar de levar chaveta parentesis rectos), o valor chega ao PHP como array dos valores seleccionados ou checkados.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Tendo em conta aquilo que disseste, só há uma parte que não percebi como efectuar o procedimento, que é: "só precisas de usar $_POST["select"] e confirmar se é igual a 1 ou 2."

De que forma é que consigo confirmar se é igual a 1 ou a 2?

Eu tentei atribuir uma variável aos valores das options.

<form id="form1" name="form1" method="post" action="">
      <input type="text" name="q" id="q" />
    <select name="select" id="select">
      <option value="<?php echo $jaquim ?>">Procurar por: username</option>
      <option value="<?php echo $jaquim2 ?>">Procurar por: id</option>
           
      </select>
        <input type="submit" name="button" id="button" value="Submit" />
  </form>
<?php 
if (isset($_POST['button'])){
if ($_POST["select"] == $jaquim ){
            echo "Mostra username";
}elseif ($_POST["select"] == $jaquim2 ){
	echo "Mostra id";
}
}
?>

Sem sucesso, ele mostra sempre a mensagem "Mostra username".

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

Eu disse 1 ou 2 porque era o que tinhas lá, agora tens $jaquim e $jaquim2.

Bem, se não está a mostrar, algo mais se passa...

Tens as variáveis $jaquim e $jaquim2 definidas antes desse código, não tens? Tenta também fazer um echo directo do <input> de texto com o name q, só para verificar que os dados do POST estão mesmo a chegar ao PHP em condições.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Sim, eu sei..eu é que alterei.

Acho que o meu problema é o que tu referiste " Tens as variáveis $jaquim e $jaquim2 definidas antes desse código "

Não, não tenho porque pensei que ao fazer o código do PHP dentro do "Value" ele atribui-se o value às variáveis.

De que forma é que devo então inserir o valor das options nas variáveis? Creio que seja essa a falha aqui.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado
Não, não tenho porque pensei que ao fazer o código do PHP dentro do "Value" ele atribui-se o value às variáveis.

O value das options do select é aquilo que tu queres que a option seja... Ali nada é escrito, só lido.

De que forma é que devo então inserir o valor das options nas variáveis? Creio que seja essa a falha aqui.

Das duas, uma: ou defines as variáveis num bloco PHP anterior a isso tudo, tipo $jaquim = 'value_do_jaquim'; ou então defines directamente no HTML o valor, tipo <option value="value_do_jaquim"> (que era como tinhas antes com o 1 e o 2).


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Oh, esquece, estava a raciocinar mal.

Já está a funcionar, como disseste da 2ª forma.

Ficando como isto a funcionar:

<form id="form1" name="form1" method="post" action="">
      <input type="text" name="q" id="q" />
    <select name="select" id="select">
      <option value="1">Procurar por: username</option>
      <option value="2">Procurar por: id</option>
           
      </select>
        <input type="submit" name="button" id="button" value="Submit" />
  </form>
<?php
if (isset($_POST['button'])){
if ($_POST["select"] == 1 ){
            echo "Mostra username";
}elseif ($_POST["select"] == 2 ){
	echo "Mostra id";
}
}
?>

Contudo, o que eu realmente quero é: A pessoa ao seleccionar na listmenu "Username", quando clicar no botão "OK" ele vai pesquisar no base de dados o que eu escrevi na textfield pelo "Username."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Bem, eu já consegui fazer em relação ao que disse em cima.

Contudo, gostava de saber se é possível eu alterar o form action via código?

É que eu preciso que me abra o search.php (caso seja username) e o search2.php caso seja (id).

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.