NetBoy16 72 Denunciar post Postado Setembro 28, 2011 Olá pessoal, eu estou praticando php aqui em casa só que me surgiu a seguinte dúvida, quando eu passo o valor digitado no campo pelo $_POST eu coloco o id ou o name? e qual a diferença desses dois? Outra coisa, eu estou fazendo um switch para tratar a escolha do sexo, o código a seguir: <?php $nome = $_POST['nome']; $telefone = $_POST['tel']; $endereco = $_POST['endereco']; $sexo = $_POST['opsex']; $obs = $_POST['obs']; $sex = "Escolha o sexo"; switch ($sexo) { case "masculino": $sex = "Masculino"; break; case "feminino": $sex = "Feminino"; break; } echo "Seu cadastro foi efetuado com sucesso !<br>"; echo "Confira seus dados abaixo:<br>"; echo "Nome: ". $nome ."<br>"; echo "Telefone: ". $telefone ."<br>"; echo "Endereço: ". $endereco ."<br>"; echo "Sexo: ". $sex ."<br>"; echo "Observações: ". $obs ."<br>"; ?> No caso como não sei qual eu uso, tanto o id e o name tem o mesmo nome. Só que o php fica dando esse erro: C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Exemplos\cadastro.php on line 5 ALGUÉM POR FAVOR PODE ME AJUDAR ? Compartilhar este post Link para o post Compartilhar em outros sites
pixelrafael 7 Denunciar post Postado Setembro 28, 2011 qual o erro?manda o codigo inteiro Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Setembro 28, 2011 ops, malz, pensei que tinha copiado tudo :P Notice: Undefined index: opsex in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Exemplos\cadastro.php on line 5 E qual a diferença do id e do name? qual eu uso no $_POST ? Compartilhar este post Link para o post Compartilhar em outros sites
pixelrafael 7 Denunciar post Postado Setembro 28, 2011 ops, malz, pensei que tinha copiado tudo :P Notice: Undefined index: opsex in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Exemplos\cadastro.php on line 5 E qual a diferença do id e do name? qual eu uso no $_POST ? Esse erro acontece quando a variável não existe, tente checar se ela existe, use a função isset, tentei usar o método GET envez de POST ^^. <?php if (isset($sexo)) { echo "Essa variável existe."; }else{ echo "Essa variável não existe."; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Setembro 28, 2011 Mas então, na linha 5 está assim: $sexo = $_POST['opsex']; ali oh, $sexo existe sim, e aaquele 'opsex' é o nome ou id do campo, no caso do radio, onde escolhe o sexo masculino ou feminino. E sobre oque eu perguntei antes, pra pegar o valor que foi digitado/escolhido eu passo o id ou o name? qual a diferença dos dois ? ajuda por favor :( Compartilhar este post Link para o post Compartilhar em outros sites
pixelrafael 7 Denunciar post Postado Setembro 28, 2011 Mas então, na linha 5 está assim: $sexo = $_POST['opsex']; ali oh, $sexo existe sim, e aaquele 'opsex' é o nome ou id do campo, no caso do radio, onde escolhe o sexo masculino ou feminino. E sobre oque eu perguntei antes, pra pegar o valor que foi digitado/escolhido eu passo o id ou o name? qual a diferença dos dois ? ajuda por favor :( A única diferença é que depois se você quiser saber o nome você vai ter que buscar na tabela a pessoa pelo id. Certeza que existe? Já tentou o método $_GET que te disse? tenta: <?php $nome = $_GET["nome"]; $telefone = $_GET["tel"]; $endereco = $_GET["endereco"]; $sexo = $_GET["opsex"]; $obs = $_GET["obs"]; $sex = "Escolha o sexo"; switch ($sexo) { case "masculino": $sex = "Masculino"; break; case "feminino": $sex = "Feminino"; break; } echo "Seu cadastro foi efetuado com sucesso !<br>"; echo "Confira seus dados abaixo:<br>"; echo "Nome: ". $nome ."<br>"; echo "Telefone: ". $telefone ."<br>"; echo "Endereço: ". $endereco ."<br>"; echo "Sexo: ". $sexo ."<br>"; echo "Observações: ". $obs ."<br>"; ?> Mande o formulário dele para eu ver Compartilhar este post Link para o post Compartilhar em outros sites
₢istiano 0 Denunciar post Postado Setembro 28, 2011 pra pegar o valor que foi digitado/escolhido eu passo o id ou o name >>> nome Tente <?php $nome = $_POST['nome']; $telefone = $_POST['tel']; $endereco = $_POST['endereco']; $sexo = (isset($_POST['radio']) ? $_POST['radio'] : NULL); $obs = $_POST['obs']; switch ($sexo) { case "masculino": $sex = "Masculino"; break; case "feminino": $sex = "Feminino"; break; case NULL: echo "Escolha o sexo"; break; } echo "Seu cadastro foi efetuado com sucesso !<br>"; echo "Confira seus dados abaixo:<br>"; echo "Nome: ". $nome ."<br>"; echo "Telefone: ". $telefone ."<br>"; echo "Endereço: ". $endereco ."<br>"; echo "Sexo: ". $sex ."<br>"; echo "Observações: ". $obs ."<br>"; Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Setembro 28, 2011 Mas qual que é melhor usar, name ou id ? Meu formulário: <body> <p>Seja Bem Vindo !</p> <form id="form1" name="form1" method="post" action="cadastro.php"> <p>Nome: <label for=""></label> <input type="text" name="nome" class="campo" id="name" /> </p> <p>Telefone: <label for="tel"></label> <input type="text" name="telefone" class="campo" id="tel" /> </p> <p>Endereço: <label for="endereco"></label> <input type="text" name="endereco" class="campo" id="end" /> </p> <p>Sexo: <input type="radio" name="sexo" id="opcao" value="masculino" /> <label for="sexo"></label> Masculino <input type="radio" name="sexo" id="opcao" value="feminino" /> <label for="sexo"></label> Feminino</p> <p>Observações:</p> <p> <label for="obs"></label> <textarea name="obs" id="desc" cols="45" rows="5" class="campo"></textarea> </p> <p> <input name="submit" type="submit" class="button" id="submit" value="Enviar" /> <input name="clean" type="reset" class="button" id="clean" value="Limpar" /> </p> </form> <p> </p> <p> </p> </body> só mandei oque está entre as tags body. engraçado que se eu uso o name, no caso do campo telefone ele dá erro, veja: <input type="text" name="telefone" class="campo" id="tel" /> no caso eu faria: $telefone = $_POST['telefone']; assim passando o name, mas ele dá erro de undefinied index mas se eu passo o id ele dá certo, pq será? pra pegar o valor que foi digitado/escolhido eu passo o id ou o name >>> nome Tente <?php $nome = $_POST['nome']; $telefone = $_POST['tel']; $endereco = $_POST['endereco']; $sexo = (isset($_POST['radio']) ? $_POST['radio'] : NULL); $obs = $_POST['obs']; switch ($sexo) { case "masculino": $sex = "Masculino"; break; case "feminino": $sex = "Feminino"; break; case NULL: echo "Escolha o sexo"; break; } echo "Seu cadastro foi efetuado com sucesso !<br>"; echo "Confira seus dados abaixo:<br>"; echo "Nome: ". $nome ."<br>"; echo "Telefone: ". $telefone ."<br>"; echo "Endereço: ". $endereco ."<br>"; echo "Sexo: ". $sex ."<br>"; echo "Observações: ". $obs ."<br>"; Muito obrigado, desse modo deu certo. Mas no caso de observações que tem ç e ~ , ele sai bem esquisito, coom faço pra tratar isso ,tem como ? Compartilhar este post Link para o post Compartilhar em outros sites
Pll 0 Denunciar post Postado Setembro 28, 2011 Netboy, algumas coisas que você pode olhar 1- Qual propriedade do RadioButton que passa por $_POST o valor "Masculino" ou "Feminino" 2- Atribuir o valor do $_POST a váriavel sempre com isset, pra não ter problema de valor vazio, a nao ser que no seu form ja vem por padrão o radiobutton clicado. 3- esse switch precisa ter a váriavel o mesmo nome que você atribuir dentro do programa, se você usa opcsex no post é interessante você usar uma variavel $opcsex dentro do código, fica mais facil de você identificar em varios sentidos... Espero ter ajudado... Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
₢istiano 0 Denunciar post Postado Setembro 28, 2011 leia sobre charset encoding Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Setembro 28, 2011 Netboy, algumas coisas que você pode olhar 1- Qual propriedade do RadioButton que passa por $_POST o valor "Masculino" ou "Feminino" 2- Atribuir o valor do $_POST a váriavel sempre com isset, pra não ter problema de valor vazio, a nao ser que no seu form ja vem por padrão o radiobutton clicado. 3- esse switch precisa ter a váriavel o mesmo nome que você atribuir dentro do programa, se você usa opcsex no post é interessante você usar uma variavel $opcsex dentro do código, fica mais facil de você identificar em varios sentidos... Espero ter ajudado... Abraço! 1- Eu não passo value por $_POST :huh: , eu passo o name, só no caso do telefone que passei id pq com o name não tá dando certo não sei porque,o name tá certinho. 2- É eu aprendi esse isset hoje, não conheci, vlw pela dica ;) 3- Sim, no switch() eu usop a variavel a qual eu atribui o valor do radio, só na hora de tratar que eu utilizo outra variavel que vai receber o valor tratado, se bem que eu estava vendo e nesse caos nem precisaria tratar porque ele vai mostrar o value e o value é masculino e feminino e não masc e fem por exemplo, então nem precisava tartar, mas foi bom porque agora aprendi sobre o isset Vlw. leia sobre charset encoding Isso no caso é pra tratar o ç e assentos, certo? vou ler sim Agora só não entendi porque usando o name telefone ele dá erro de index indefinido, e se eu uso o id tel fica tudo certo :o O resto está tudo ok :lol: Compartilhar este post Link para o post Compartilhar em outros sites
gildo.rj 0 Denunciar post Postado Setembro 28, 2011 Bom eu tive esse problema a poco tempo e percebi que quando voce coloca id no seu formulario e passa via post ele não consegue ler o name. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 28, 2011 O id não tem nada a ver com name. <?php ini_set( 'display_errors', true ); error_reporting( E_ALL ); if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) { var_dump( $_POST ); } ?> <form action="" method="post"> <input type="text" id="id_nome" class="class_nome" name="nome"> <input type="password" id="id_senha" class="class_senha" name="senha"> <input type="submit" value="Send"> </form> Compartilhar este post Link para o post Compartilhar em outros sites