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

Formulário


Vinícius

Pergunta

Olá pessoal estou estudando PHP há uma semana e estou com uma dúvida aqui.

Eu fiz um formulário com botão de opção mas não consegui o efeito desejado.

Código do formulário:

<form name="frmteste" method="post" action="respbotaoselecao.php">

<input type="radio" name="rbsexo" value="masculino">Masculino

<input type="radio" name="rbsexo" value="feminino">Feminino

<p>

<input type="submit" name="Submit" value="Enviar">

</p>

</form>

respbotaoselecao.php

<?

$sexo = $_POST['$rbsexo'];

if ($sexo == "masculino") {

  echo "Você escolheu o sexo Masculino";

}

else {

  echo "Você escolheu o sexo Feminino";

}

?>

Qualquer opção que eu escolha só está retornando: "Você escolheu o sexo Feminino".

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Eu consegui assim

<?
$sexo = $_POST["rbsexo"];
echo "<input name='rbsexo' type='hidden' id='rbsexo' value='$rbsexo'>";
if ($sexo == 'masculino') {
  echo "Você escolheu o sexo Masculino";
}
else {
  echo "Você escolheu o sexo Feminino";
}
?> 

Qualque coisa posta ae.....

valeu

guilherme

Link para o comentário
Compartilhar em outros sites

  • 0
Funcionou aqui.

Poderia me explicar porque desse jeito funcionou?

se eu não estou errado, estas expressões juntas

1º - $sexo = $_POST["rbsexo"];

2º - echo "<input name='rbsexo' type='hidden' id='rbsexo' value='$rbsexo'>";

No caso a primeira expr. pega o valor que esta vindo pelo post e coloca na variavel $sexo,

No caso a segunda expr. é um campo oculto e ela só esta servindo para gravar os dados, que está na variavel $sexo..

a final a um tempo atras eu estava com a mesma dúvida e me colocaram esta soluçãoe ecplicaram mais ou menos, não posso te dizer que a afirmação esta correta...

qualquer coisa pessoal do forum pode falar...

valeu guilherme

Link para o comentário
Compartilhar em outros sites

  • 0

Tenho outra dúvida com formulário.

dados.php

<html>

<head>

<title>Exemplo2 - Formul&aacute;rios</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<?

  include "cabecalho.php" ;

  $txnome = $_POST['txnome'];

  $txendereco = $_POST['txendereco'];

  $txnumero = $_POST['txnumero'];

?>

<?

  // variaveis que serão responsáveis por armazenar o valor

  // do nome, telefone e endereco para preencher os objetos do formulario

 

  $nome ;

  $sexo ;

  $telefone ;

  $checasim ;

  $checanao ;

 

  if ($telefone <> '') {

    $checasim = "checked" ;

    $checanao = "" ;

  } else {

    $checasim = "" ;

$checanao = "checked" ;

  }

 

?>

<table width=100%" border="0" cellspacing="0">

  <tr>

    <td>

      <form name="form1" method="post" action="resposta.php">

        <table width="100%" border="0" cellspacing="0">

          <tr>

            <td width="9%" bgcolor="#333333">&nbsp;</td>

            <td width="91%" bgcolor="#CCCCCC">&nbsp;</td>

          </tr>

          <tr>

            <td width="9%" bgcolor="#333333"><b> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">

              Nome </font></b></td>

            <td width="91%" bgcolor="#CCCCCC"> <font color="#000000"> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">

              <input type="text" name="txnome" maxlength="50" size="40" value="<? echo $nome ; ?>">

              </font></b></font></td>

          </tr>

          <tr>

            <td width="9%" bgcolor="#333333"><font color="#FFFFFF"></font></td>

            <td width="91%" bgcolor="#CCCCCC"><font color="#000000"></font></td>

          </tr>

          <tr>

            <td width="9%" bgcolor="#333333"><b> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">

              Endere&ccedil;o</font></b></td>

            <td width="91%" bgcolor="#CCCCCC"> <font color="#000000"><b><font color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">

              <input type="text" name="txendereco" size="50" value="<? echo $endereco ; ?>">

              </font></b></font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">

              </font></b></font></td>

          </tr>

          <tr>

            <td width="9%" bgcolor="#333333"><font color="#FFFFFF"></font></td>

            <td width="91%" bgcolor="#CCCCCC"><font color="#000000"></font></td>

          </tr>

          <tr>

            <td width="9%" bgcolor="#333333"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Telefone

              </font></b></td>

            <td width="91%" bgcolor="#CCCCCC"> <font color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">

              <input type="radio" name="rbtelefone" value="N&atilde;o" <? echo $checanao ; ?>>

              N&atilde;o

              <input type="radio" name="rbtelefone" value="Sim" <? echo $checasim ; ?>>

              Sim Qual N&uacute;mero ?

              <input type="text" name="txnumero" value="<? echo $telefone ; ?>">

              </font></b></font></td>

          </tr>

          <tr>

            <td width="9%" bgcolor="#333333"><font color="#FFFFFF">&nbsp;</font></td>

            <td width="91%" bgcolor="#CCCCCC"><font color="#CCCCCC">&nbsp;</font></td>

          </tr>

          <tr>

            <td width="9%">&nbsp;</td>

            <td width="91%">&nbsp;</td>

          </tr>

          <tr>

            <td width="9%"><font color="#000000"></font></td>

            <td width="91%">

              <input type="submit" name="Submit" value="Enviar">

            </td>

          </tr>

        </table>

      </form>

    </td>

  </tr>

</table>

<p>&nbsp;</p>

</body>

</html>

resposta.php

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Untitled Document</title>

</head>

<body>

<?

$erro = 1;

include "cabecalho.php";

$m_nome = $_POST['txnome];

$m_endereco = $_POST['txendereco'];

$m_telefone = $_POST['txtelefone'];

$m_numero = $_POST['txnumero'];

if (  (! $m_nome) or (! m_endereco) or (  ($m_telefone='Sim') and (!$m_numero)  ) ) {

  include "dadosincompletos.php";

} else {

  include "dadoscertos.php";

}

?>   

</body>

</html>

dadosincompletos.php

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Untitled Document</title>

</head>

<body link="#000000">

<?

$link = "dados.php?nome=$m_nome&endereco=$m_endereco&telefone=$m_numero" ;

?> 

<table width="100%"  border="0" cellspacing="0">

  <tr>

    <td bgcolor="#CCCCCC">&nbsp;</td>

  </tr>

  <tr>

    <td bgcolor="#CCCCCC"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Confira abaixo os dados que voc&ecirc; digitou: </font></b></td>

  </tr>

  <tr>

    <td bgcolor="#CCCCCC">&nbsp;</td>

  </tr>

  <tr>

    <td>

      <table width="100%"  border="0" cellspacing="0">

        <tr bgcolor="#CCCCCC">

          <td colspan="2"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Voc&ecirc; n&atilde;o preencheu todos os campos do formul&aacute;rio! </font></b></td>

        </tr>

        <tr bgcolor="#CCCCCC">

          <td colspan="2"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Retorne ao campo anterior e verifique os dados que est&atilde;o faltando. </font></b></td>

        </tr>

        <tr bgcolor="#CCCCCC">

          <td width="18%">&nbsp;</td>

          <td width="82%">&nbsp;</td>

        </tr>

        <tr bgcolor="#CCCCCC">

          <td width="18%">&nbsp;</td>

          <td width="82%"><a href="<? echo $link ; ?>"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Retorna</font></a></td>

        </tr>

      </table>

    </td>

  </tr>

</table>

</body>

</html>

O problema é o seguinte, caso eu não preencha algum campo do formulários vai para a página dadosincompletos.php.

Se por exemplo eu tivesse preenchido só o campo nome, quando eu clicar no link para retornar á pagina dados.php deveria aparecer no campo nome o que eu tinha preenchido anteriormente.

Mas não está acontecendo isso.

Link para o comentário
Compartilhar em outros sites

  • 0

esta linha no meu programa deu erro....

resposta.php

include "dadosimcompletos.php";

no programa

dadosimcompletos.php

não achei erro nenhum

agora neste

dados.php

esta faltando um <form action="resposta.php" method="post"> antes da tabela e depois do fechamento da tag do php ou ?>

de uma olhada nesta parte, que também está errada

if ($telefone <> '') {

$checasim = "checked";

$checanao = "";

} else {

$checasim = "";

$checanao = "checked";

}

inclua estas três linhas apos o include "cabecalho.php";

<?

include "cabecalho.php";

$txnome = $_POST['txnome'];

$txendereco = $_POST['txendereco'];

$txnumero = $_POST['txnumero'];

?>

no meu aqui funcionou....

qualquer coisa posta ai....

valeu

guilherme

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo seus script estao cheios de erros, mas pelo que eu vi quer fazer um formulario e quando o cara clicar vai pra outra pagina e mostra os dados se tiver certo ele confirma e salva certo?

http://scriptbrasil.com.br/forum/index.php...ndpost&p=180178

obs: sobre sua duvida em relação aos $_POST e $_GET

é que antes a register_globals era setada pra on no php.ini

depois mudaram para off por motivos de segurança se quiser mais detalhes leia no manual do php sobre register_globals

Link para o comentário
Compartilhar em outros sites

  • 0
include "dadosimcompletos.php";

O nome do arquivo é dadosincompletos, escrevi errado no post.

Já alterei o dados.php mas o problema persiste.

Vou botar o código alterado no meu primeiro post editando os que já estão lá.

Dá uma olhada.

não estou entendendo, pela pergun ta que você fez, eu verifiquei e funcionou aqui no meu pc

a sua pergunta

O problema é o seguinte, caso eu não preencha algum campo do formulários vai para a página dadosincompletos.php.

Se por exemplo eu tivesse preenchido só o campo nome, quando eu clicar no link para retornar á pagina dados.php deveria aparecer no campo nome o que eu tinha preenchido anteriormente.

Mas não está acontecendo isso.

com aquilo que te passei funcionou no meu sim., sem erros....

valeu

guilherme

Link para o comentário
Compartilhar em outros sites

  • 0

Cara você não ta entendendo você não esta vendo os erros mas não quer dizer que não tenha

faça isso entre no php.ini e ache a linha display_erros = off

coloque para display_erros = on reinicie o serviço do apache agora testa seus script pra você ver, se você não sabe o display_erros é pra isso mesmo mostrar erros é importante sempre trabalhar com ele em on

Link para o comentário
Compartilhar em outros sites

  • 0
Cara você não ta entendendo você não esta vendo os erros mas não quer dizer que não tenha

faça isso entre no php.ini e ache a linha display_erros = off

coloque para display_erros = on reinicie o serviço do apache agora testa seus script pra você ver, se você não sabe o display_erros é pra isso mesmo mostrar erros é importante sempre trabalhar com ele em on

primeiramente o meu já esta on

e segundo eu testei novamente e deu certo...

valeu

guilherme

Link para o comentário
Compartilhar em outros sites

  • 0

Cara eu to falando do script acima se você acha que ta certo então ta não vamos discultir mas se você ver a pagina dados.php

  $nome ;

  $sexo ;

  $telefone ;

  $checasim ;

  $checanao ;

ta errado

resultado:

Notice: Undefined index: txnome in C:\root\dados.php on line 9

Notice: Undefined index: txendereco in C:\root\dados.php on line 10

Notice: Undefined index: txnumero in C:\root\dados.php on line 11

Notice: Undefined variable: nome in C:\root\dados.php on line 17

Notice: Undefined variable: sexo in C:\root\dados.php on line 18

Notice: Undefined variable: telefone in C:\root\dados.php on line 19

Notice: Undefined variable: checasim in C:\root\dados.php on line 20

Notice: Undefined variable: checanao in C:\root\dados.php on line 21

Notice: Undefined variable: telefone in C:\root\dados.php on line 23

se consegue ver os erros agora?

Link para o comentário
Compartilhar em outros sites

  • 0

você pode usar javascript:

echo "<a href=\"javascript:history.go(-1);\">Voltar</a>";

e sobre o script o certo é você definir uma variavel vazia assim:

$nome = "" ;

$sexo = "";

$telefone = "";

$checasim = "" ;

$checanao  = "";

e não assim:

$nome ;

  $sexo ;

  $telefone ;

  $checasim ;

  $checanao ;

Link para o comentário
Compartilhar em outros sites

  • 0

$nome = "" ;

$sexo = "";

$telefone = "";

$checasim = "" ;

$checanao  = "";

Já coloquei assim e pus o register_globals com Off.

Use register_globals em off e pegue os dados do form com $_POST ou $_GET se for ele

Não consegui te compreender agora.

p.s: comecei com php faz nem 2 semanas.

Outro detalhe:

localhost/php_mysql/II/forms/2exemplo/dados.php?

nome=teste&endereco=&telefone=

A url está reconhecendo as variáveis, só não está aparecendo o dado nas caixas de texto.

Link para o comentário
Compartilhar em outros sites

  • 0

Não consegui te compreender agora.

p.s: comecei com php faz nem 2 semanas.

então você precisa pegar os dados vindos do formulario

pagina.php?nome=teste&endereco=avbrasil&telefone=48889988

você pega:

$nome = $_GET["nome"];

$endereco = $_GET["endereco"];

$telefone = $_GET["telefone"];

entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

entendeu?

Agora sim. wink.gif . Funcionou aqui.

Deixa eu ver se entendi:

$_GET["nome"];

Essa instrução recebe o dado que foi passado através da variável $link?

Tenho outra dúvida mas no arquivo resposta.php:

<?

$erro = 1;

include "cabecalho.php";

$m_nome = $_POST['txnome];

$m_endereco = $_POST['txendereco'];

$m_telefone = $_POST['txtelefone'];

$m_numero = $_POST['txnumero'];

if (  (! $m_nome) or (! m_endereco) or (  ($m_telefone='Sim') and (!$m_numero)  ) ) {

  include "dadosincompletos.php";

} else {

  include "dadoscertos.php";

}

?>

Para que serve a variável $erro ?

Link para o comentário
Compartilhar em outros sites

  • 0

pode ser que a pessoa que fez o script setou a $erro, pra depois usar ele pra mensagens de erros personalizadas

Entendi.

valeu pela ajuda. smile.gif

..........................................................

Para não abrir outro tópico vou tirar uma dúvida que eu tenho sobre cookies.

Eu estou fazendo um exercício de cookies aqui e no arquivo para apagar os cookies tem o seguinte código.

<?

setcookie("nome");

setcookie("endereco");

setcookie("visitas");

?>

Isso antes do <html>.

Mas os cookies não estão sendo deletados depois da execução desse arquivo.

O que pode estar errado?

Link para o comentário
Compartilhar em outros sites

  • 0

você pode setar o valor do cookie pra negativo

setcookie("nome", 0, 1);

manual do php:

Cookies devem ser excluídos com os mesmos parâmetros que foram criados. Se o argumento valor for uma string vazia (""), e todos os outros argumentos forem iguais, então o cookie com o nome especificado será excluído do cliente.

http://br.php.net/set_cookie

Link para o comentário
Compartilhar em outros sites

  • 0

você pode setar o valor do cookie pra negativo

setcookie("nome", 0, 1);

Funcionou mas não entendi muito bem.

porque botando '0,1' ele seta como negativo?

E porque setando como negativo, ele exclui o cookie?

Resumindo, não entendi porque entrou esse 0 e esse 1.

Eu entendi que se eu criei o cookie com três parametros para excluir é a mesma coisa.

Só não entendi porque entrou 0 e o 1.

Já li.

valeu.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...