fernando_ott Postado Junho 4, 2006 Denunciar Share Postado Junho 4, 2006 Boa noite....Eu tenho um formulário, onde há 5 checkbox. Como eu faço para o meu script (PHP) ler o valor da opção escolhida, onde o usuario pode escolher tanto 1 como 4 ou todos os valores?Esse valores são enviando para um e-mail daí. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 D4n1l0d Postado Junho 4, 2006 Denunciar Share Postado Junho 4, 2006 tp, no codigo, você tem que colocar um nome para cada checkbox:exemplo: <html> <head><title> Página de teste </title> </head> </body> <form method="GET" action="teste.php"> <input type="checkbox" name="opt1" value="sim"> Opção 1 <br/> <input type="checkbox" name="opt2" value="sim"> Opção 2 <br/> <input type="checkbox" name="opt3" value="sim"> Opção 3 <br/> <input type="checkbox" name="opt4" value="sim"> Opção 4 <br/> <input type="checkbox" name="opt5" value="sim"> Opção 5 <br/> <input type="submit" value="Enviar"> </form> </body> </html> o method do form também pode ser postmas no exemplo se a pessoa marcar a checkbox com name opt1,vai ser enviada uma variavel com nome "opt1" e com valor "sim"isso vai ser para cada checkbox; Se a pessoa não escolher a checkbox , não sera criada variavel nenhuma pra ela. o nome da variavel é o NAME da checkbox e o valor da variavel da checkbox quando clicada é o VALUE;qualquer coisa é so pergunta aí!!falou Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 5, 2006 Autor Denunciar Share Postado Junho 5, 2006 beleza... o html está tranquilo, só que daí no php, qual váriavel que eu coloco, porque eu tentei com o value e type, e não está dando certo.$_POST["sim"];$_POST["checkbox"];valews Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 pblrodrigues Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 Como D4n1l0d Já disse o nome da variavel é o NAME da checkbox e o valor da variavel da checkbox quando clicada é o VALUE; $cbox = $_POST['opt1']; Falowww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 5, 2006 Autor Denunciar Share Postado Junho 5, 2006 beleza, eu tentei assim$checkbox = $_POST["opt1"]; $_POST["opt2"]; $_POST["opt3"]; $_POST["opt4"];mas não deu certo no e-mail quando recebe, só aparece a opção 'sim'.mas tinha que aparecer a opção selecionada né, tipo no e-mail:Checkbox selecionadas: opt1 opt3 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ::frenetico:: Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 porque aparece o "sim" ?? :huh:Coloca seu codigo que você fez pra darmos uma olhada ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 pblrodrigues Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 teste todos ao receberif ($_REQUEST['opt1']=='sim') echo'escolehu a op 1'; faloww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 5, 2006 Autor Denunciar Share Postado Junho 5, 2006 está na mão-------------------------------------PHP<?$nome = $_POST["nome"];$email = $_POST["email"];$pagamento = $_POST["pagamento"];$checkbox = $_POST["opt1"];$_POST["opt2"];$_POST["opt3"];$_POST["opt4"];$mens .= "Nome: $nome<br> ";$mens .= "Email: $email<br> ";$mens .= "Forma de Pagamento: $pagamento <br> ";$mens .= "Os produtos pedidos foram: $checkbox <p> ";mail("$destinatario","$assunto","$mens","from: ".$de.$formato); ?>----------------------------------------------HTML <form method="post" action="teste.php"> <p> <input type="checkbox" name="opt1" value="sim"> Opção 1 <br/> <input type="checkbox" name="opt2" value="sim"> Opção 2 <br/> <input type="checkbox" name="opt3" value="sim"> Opção 3 <br/> <input type="checkbox" name="opt4" value="sim"> Opção 4 <br/> <input type="checkbox" name="opt5" value="sim"> Opção 5 </p> <p></p>Nome: <input name="nome" type="text" id="nome2" size="35"></p> <p></p>E-mail para envio: <input name="email" type="text" id="email2" size="35"> </p> <p>Preferência de pagamento: <input type="radio" name="pagamento" value="boleto"> Boleto <input type="radio" name="pagamento" value="deposito"> Depósito</p> <p> <input type="submit" name="Submit" value="Enviar"></form> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ::frenetico:: Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 Tente assim:$nome = $_POST["nome"]; $email = $_POST["email"]; $pagamento = $_POST["pagamento"]; $opt1 = $_POST["opt1"]; $opt2 = $_POST["opt2"]; $opt3 = $_POST["opt3"]; $opt4 = $_POST["opt4"]; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 5, 2006 Autor Denunciar Share Postado Junho 5, 2006 Puts, mas não tem como junta em um unico valor, porque vou usar mais de 200 checkbox, porque são produtos que ele vai selecionando quais ele quer, e são bastantes... :huh: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ::frenetico:: Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 Owrite!!!tem sim... <? extract($_POST); unset($_POST['a'], $_POST['b'], $_POST['c'], $_POST['d'], $_POST['e'], $_POST['f']); foreach ($_POST as $campo => $valor) { $msg .= "<br />" . ucfirst($campo) . " : <b>" . $valor . "</b>"; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 Tem um modo mais fácil de usar isso, supondo que você possa usar mais de 3 checkboxEu faço assim<html> <head> <title></title> </head> <body> <form name="opc" action="pegaChek.php" method="post"> <input type="checkbox" name="opt[]" value="1"/>value 1<br> <input type="checkbox" name="opt[]" value="2"/>value 2<br> <input type="checkbox" name="opt[]" value="3"/>value 3<br> <input type="checkbox" name="opt[]" value="4"/>value 4<br> <input type="submit" value="enviar" /> </form> </body></html><?php $sValores = $_POST[ "opt" ]; for( $i = 0; $i < count( $sValores ); $i++ ){ echo $sValores[$i]."<br>"; }?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 D4n1l0d Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 caravamos supor que você quer que apareça o produto no lugar do simfaça o seguinte: <html> <head><title> Página de teste </title> </head> </body> <form method="GET" action="teste.php"> <input type="checkbox" name="opt1" value="produto1"> Produto 1 <br/> <input type="checkbox" name="opt2" value="produto2"> Produto 2 <br/> <input type="checkbox" name="opt3" value="produto3"> Produto 3 <br/> <input type="checkbox" name="opt4" value="produto4"> Produto 4 <br/> <input type="checkbox" name="opt5" value="produto5"> Produto 5 <br/> <input type="submit" value="Enviar"> </form> </body> </html> ai você teria que usa isso que o ::frenetico:: falo $opt1 = $_POST["opt1"]; $opt2 = $_POST["opt2"]; $opt3 = $_POST["opt3"]; $opt4 = $_POST["opt4"]; ========================================Como juntar todas as checkbox em uma só??bom, eu tenho uma "teoria"usa um campo do tipo Hiddene um pouco de javascriptpera que eu já vo prepara o codigojá volto!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 É só usar um FOR Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 D4n1l0d Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 Olha o codigo ai gente!!está, esse exemplo que eu mando abaixo tem dois formsem um você coloca so as checkbox e nomeia elas de acordocomc1, c2, c3, etc,,o value delas é o nome do produtoai vai ate c7, se você adicionar mais umaadiciona um pouco de codigo no javascriptexemplo, adicionei uma checkbox ( c8) então no scripteu adicionoif (prodt.c8.checked) {valor_final += prodt.c8.value + separador;}so que isso antes dodocument.formulario.total.value = valor_final;assim eu adiciono isso para cada checkbox adicionadavai ser enviado para vocêuma variavel no php com o nome de "total"todos os produtos estarao la, separados por " , "assimse eu escolhi o produto1 , 2 e 3vai tarproduto1,produto2,produto3,com a função explode do php você pode separar!! <html> <head> <title>Página teste </title> </head> <body> <script language="JavaScript"> function prod(){ var prodt = document.produtos; separador = ',' valor_final= ''; if (prodt.c1.checked) { valor_final += prodt.c1.value + separador; } if (prodt.c2.checked) { valor_final += prodt.c2.value + separador; } if (prodt.c3.checked) { valor_final += prodt.c3.value + separador; } if (prodt.c4.checked) { valor_final += prodt.c4.value + separador; } if (prodt.c5.checked) { valor_final += prodt.c5.value + separador; } if (prodt.c6.checked) { valor_final += prodt.c6.value + separador; } if (prodt.c7.checked) { valor_final += prodt.c7.value + separador; } document.formulario.total.value = valor_final; } </script> <form name="produtos"> <!--este form contera apenas as checkbox e não sera enviado--> <input type="checkbox" name="c1" value="produto1" onclick="prod()"> Produto 1 <br/> <input type="checkbox" name="c2" value="produto2" onclick="prod()"> Produto 2 <br/> <input type="checkbox" name="c3" value="produto3" onclick="prod()"> Produto 3 <br/> <input type="checkbox" name="c4" value="produto4" onclick="prod()"> Produto 4 <br/> <input type="checkbox" name="c5" value="produto5" onclick="prod()"> Produto 5 <br/> <input type="checkbox" name="c6" value="produto6" onclick="prod()"> Produto 6 <br/> <input type="checkbox" name="c7" value="e_assim_vai"> E assim vai <br/> </form> <form method="GET" action="teste.php" name="formulario"> <input type="hidden" value=" " name="total"> <input type="submit" value="Enviar"> </form> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 5, 2006 Autor Denunciar Share Postado Junho 5, 2006 Eu tentei usando assim, com o for <? $nome = $_POST["nome"]; $email = $_POST["email"]; $pagamento = $_POST["pagamento"]; $sValores = $_POST[ "opt" ]; for( $i = 0; $i < count( $sValores ); $i++ ){ echo $sValores[$i]."<br>"; } . . . $mens .= "Os produtos pedidos foram: $sValores <p> "; HTML <input name="opt[]" type="checkbox" id="opt[]" value="valor1"> Opção 1 <br/> <input name="opt[]" type="checkbox" id="opt[]" value="valor1"> Opção 2 <br/> <input name="opt[]" type="checkbox" id="opt[]" value="valor1"> Opção 3 <br/> <input name="opt[]" type="checkbox" id="opt[]" value="valor1"> Opção 4 <br/> <input name="opt[]" type="checkbox" id="opt[]" value="valor1"> Opção 5 </p> Mas quando submeto o formulario, e verifico no e-mail que é enviado,o campo que aparece fica assimOs produtos pedidos foram: Array Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 5, 2006 Autor Denunciar Share Postado Junho 5, 2006 beleza.... boa essa do js, mas daí o que que coloca no php???mals, to começando ainda no php... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 Eu acho mais fácil você fazer assim.<html><head><title></title></head><body><form name="opc" action="pegaChek.php" method="post"><input type="checkbox" name="opt[]" value="1"/>value 1<br><input type="checkbox" name="opt[]" value="2"/>value 2<br><input type="checkbox" name="opt[]" value="3"/>value 3<br><input type="checkbox" name="opt[]" value="4"/>value 4<br><input type="submit" value="enviar" /></form></body></html><?php$sValores = $_POST[ "opt" ];for( $i = 0; $i < count( $sValores ); $i++ ){echo $sValores[$i]."<br>";}?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 5, 2006 Autor Denunciar Share Postado Junho 5, 2006 Pois tentei desse jeito Tenko, mas depois que eu submeto o formulario, no campo do checkbox lá no e-mail que recebe aparece array invéz do valor 1,2,3,4...o que que será que está acontecendo.. porque teste i igualzinho você posto... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Evandro - Postado Junho 6, 2006 Denunciar Share Postado Junho 6, 2006 Meu amigo apareceu 1234 por que o value que está é 1 2 3 e 4 é só você substituir o os números pelos vclores que você que que apareca ex.<input type="checkbox" name="opt[]" value="arroz"/>value 1<br><input type="checkbox" name="opt[]" value="feijao"/>value 2<br><input type="checkbox" name="opt[]" value="macarrao"/>value 3<br><input type="checkbox" name="opt[]" value="leite"/>value 4<br>os valores definidos dentro das aspas é o que vai ser enviado !!!Bem galera do forum !!! pegando um gancho nesse tópico !!eu to com uma dúvida vamos supor que nos checkbox acima eu tivesse nove opções sendo que eu poderia selecionar somente 2 como eu poderia fazer ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Junho 6, 2006 Denunciar Share Postado Junho 6, 2006 Usando o código que eu fiz? Se for isso você pode escolher qualquer um, ele exibe o conteúdo que você quer. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renyo Postado Junho 6, 2006 Denunciar Share Postado Junho 6, 2006 <?php$i = 0;while ($i < 200){ echo "<input type='checkbox name='opcao[$i]'>";$i++;$radio = $_GET["opcao[$i]"];}if ($radio > 2)echo "Você não pode pegar mais que 2"?>da certo???? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Junho 6, 2006 Denunciar Share Postado Junho 6, 2006 Desculpa, entendi errado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernando_ott Postado Junho 6, 2006 Autor Denunciar Share Postado Junho 6, 2006 no campo do checkbox lá no e-mail que recebe aparece array invéz do valor 1,2,3,4... <?php $sValores = $_POST[ "opt" ]; for( $i = 0; $i < count( $sValores ); $i++ ){ echo $sValores[$i]."<br>"; } ?> O que esta acontecendo, é que invéz dos valores aparecerem, esta aparecendo 'array'.O que sera que esta acontecendo, para invez de aparecerem os valores, estar aparecendo array? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fernando_ott
Boa noite....
Eu tenho um formulário, onde há 5 checkbox. Como eu faço para o meu script (PHP) ler o valor da opção escolhida, onde o usuario pode escolher tanto 1 como 4 ou todos os valores?
Esse valores são enviando para um e-mail daí.
Link para o comentário
Compartilhar em outros sites
23 respostass a esta questão
Posts Recomendados
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.