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

Sign in to follow this  
bioshock

List menu {resolvido}

Recommended Posts

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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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".

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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."

Share this post


Link to post
Share on other 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).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.