Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida ListBox Dinamica


Thiago Top

Pergunta

Olá,

Estou criando um sisteminha de cadastro aqui em casa, apenas para praticar PHP, já que a mesma é uma linguagem bem interessante, sou novo em PHP mas estou gostando da linguagem ...

então, eu criei uma ListBox para o usuario poder escolher se deseja ALTERAR, CADASTRAR ou EXCLUIR um determinado registro.

Como eu faco para quando o usuario escolher a opcao CADASTRAR por exemplo e clicar em CONFIRMAR chamar um script, se ele clicar em ALTERAR chamar outro script?

O codigo é este:

<?php

$Message1="Cadastrar";

$Message2="Alterar";

$Message3="Excluir";

echo "<FORM METHOD=GET ACTION='hidden2.php'>";

echo "<SELECT NAME='ListBox'>";

echo "<OPTION>$Message1</OPTION>";

echo "<OPTION>$Message2</OPTION>";

echo "<OPTION>$Message3</OPTION>";

echo "</SELECT><BR><BR>";

echo "<INPUT TYPE=HIDDEN NAME=Hidden1 VALUE='$Message1'>";

echo "<INPUT TYPE=HIDDEN NAME=Hidden2 VALUE='$Message2'>";

echo "<INPUT TYPE=HIDDEN NAME=Hidden3 VALUE='$Message3'>";

echo "<INPUT TYPE=SUBMIT value ='Confirmar'>";

echo "</FORM>";

?>

Abracos,

thiago

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Você precisará colocar o atributo value nos options, pois é pelo value que o PHP saberá o que fazer.

tente o seguinte:

<?php
$Message1="Cadastrar";
$Message2="Alterar";
$Message3="Excluir";
echo "<FORM METHOD=GET ACTION='hidden2.php'>";
echo "<SELECT NAME='ListBox'>";
echo "<OPTION value=\"$Message1\">$Message1</OPTION>";
echo "<OPTION value=\"$Message2\">$Message2</OPTION>";
echo "<OPTION value=\"$Message3\">$Message3</OPTION>";
echo "</SELECT><BR><BR>";
echo "<INPUT TYPE=HIDDEN NAME=Hidden1 VALUE='$Message1'>";
echo "<INPUT TYPE=HIDDEN NAME=Hidden2 VALUE='$Message2'>";
echo "<INPUT TYPE=HIDDEN NAME=Hidden3 VALUE='$Message3'>";
echo "<INPUT TYPE=SUBMIT value ='Confirmar'>";
echo "</FORM>";
?>
Pronto, value colocado, agora antes de você abrir este formulário, precisará colocar uma condição (if) dizendo que, se o seu SELECT ListBox for enviado, o script terá que executar algumas ações, assim:
// Primeiro, veja se ele foi enviado
if (isset($_GET["ListBox"]){
//Agora sim, se ele foi enviado, veja qual é o valor dele
if ($_GET["ListBox"] == "Cadastrar"){
echo "Aqui a parte do script para cadastrar";
}
elseif ($_GET["ListBox"] == "Alterar"){
echo "Aqui a parte do script para alterar";
}
elseif ($_GET["ListBox"] == "Excluir"){
echo "Aqui a parte do script para excluir";
}
else {
echo "Se ele não for igual a nenhum dos três, faça outra coisa, como uma mensagem de erro";
}
}

Ficando seu script todo assim:


<?php
// Primeiro, veja se ele foi enviado
if (isset($_GET["ListBox"]){
//Agora sim, se ele foi enviado, veja qual é o valor dele
if ($_GET["ListBox"] == "Cadastrar"){
echo "Aqui a parte do script para cadastrar";
}
elseif ($_GET["ListBox"] == "Alterar"){
echo "Aqui a parte do script para alterar";
}
elseif ($_GET["ListBox"] == "Excluir"){
echo "Aqui a parte do script para excluir";
}
else {
echo "Se ele não for igual a nenhum dos três, faça outra coisa, como uma mensagem de erro";
}

$Message1="Cadastrar";
$Message2="Alterar";
$Message3="Excluir";
echo "<FORM METHOD=GET ACTION='hidden2.php'>";
echo "<SELECT NAME='ListBox'>";
echo "<OPTION value=\"$Message1\">$Message1</OPTION>";
echo "<OPTION value=\"$Message2\">$Message2</OPTION>";
echo "<OPTION value=\"$Message3\">$Message3</OPTION>";
echo "</SELECT><BR><BR>";
echo "<INPUT TYPE=HIDDEN NAME=Hidden1 VALUE='$Message1'>";
echo "<INPUT TYPE=HIDDEN NAME=Hidden2 VALUE='$Message2'>";
echo "<INPUT TYPE=HIDDEN NAME=Hidden3 VALUE='$Message3'>";
echo "<INPUT TYPE=SUBMIT value ='Confirmar'>";
echo "</FORM>";
?>
[/codebox]

Uma dica:

Utilize method POST ao invés do GET, comparando o valor com $_POST, pois assim os dados enviados não ficam na URL e seu script fica menos vulnerável.

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi, sua explicacao foi perfeita, só me responde uma coisa...

o meu script ficaria mais ou menos assim, supondo que a opcao "CADASTRAR" seja a

escolhida na minha listbox:

if ($_GET["ListBox"] == "Cadastrar")

{

echo "<FORM METHOD=GET ACTION='FORMULARIO_PARA_CADASTRAR.php'>";

echo "</FORM>";

}

Como eu faco para chamar outro "script.php" (porque eu tenho um formulario que chama o script "hidden2.php" quando eu clico em confirmar) ? Digamos assim, como eu faco para "fugir" deste formulario principal que cai sempre em uma pagina padrão, chamada "hidden2.php"?

Obs: Desculpe a grosseria da pergunta, é que eu realmente não sei.

Obrigado

thiago

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode usar o include, ou redirecionar a página com o java script:

Colocando include: (A página fará parte dessa página do formulário)

if ($_GET["ListBox"] == "Cadastrar")
{
include("script.php");
}
Colocando um JavaScript para redirecionar para outra página:
if ($_GET["ListBox"] == "Cadastrar")
{
echo "<script language=\"javascript\">window.location.href = \"script.php\";</script>";
}

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado,

Funcionou perfeitamente.

Agora tenho outrao duvida ...

E se eu quisesse colocar um RadioBox na minha lista de cadastro para que quando eu quiser

excluir um usuario eu selecione o mesmo e depois va na minha ListBox e exclua ou altere o mesmo que esta selecionado?

Tem como dar continuacao neste mesmo POST ou serah necessario que eu abra um novo post?

Abracos

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...