fsphp Postado Janeiro 19, 2005 Denunciar Share Postado Janeiro 19, 2005 Estou quebrando a cabeça em como passar as variáveis dos checkbox para banco de dados.Fiz assim:formulario.php<input type="checkbox" name="futebol" value="1">Futebol-------------------------------insere_variaveis.php$futebol = $_POST['futebol'];(INSERT INTO enquete VALUES futebol=$futebol'")/-----------------------------------------visualiza_dados.php("SELECT futebol FROM enquete");echo "$futebol"----------------------------------------Se o campo de futebol não é preenchido, o php não reconhece a variável que $_POST['futebol] que eu coloco no início da página insere_variaveis.php e dá mensegem de erro index.O que devo fazer? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Janeiro 19, 2005 Denunciar Share Postado Janeiro 19, 2005 (editado) eu ponho assim e funcionana pagina do formulário... <input name="receber" type="checkbox" id="receber" value="S"> aqui eu ponho o select, mas não ponho condição nenhuma, só na lçeitura.... mas se quizer por vvocê vai por. ná página que vai receber $receber = $_POST['receber']; e aonde vai ler.... <input name="receber" type="hidden" id="receber"> <? if ($receber == "S") print("Sim desejo receber informações."); else print("Não desejo receber informações.");?> não sei se te ajudou, qualquer dúvida posta ai...guilherme Editado Janeiro 19, 2005 por Guilherme014 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lemissel Postado Janeiro 20, 2005 Denunciar Share Postado Janeiro 20, 2005 Poe no atributo "name" assim: var[] que ele envia um array na forma de $_POST[var][0], $_POST[var][1]... se o seu method for POST se for GET envia no array $_GET[var][0]... e assim vai... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 gabi_poa Postado Janeiro 20, 2005 Denunciar Share Postado Janeiro 20, 2005 tem outra forma que aprendi aqui no fórum:Colocando-se "name='foo[]'", quando esses campos forem passados para o PHP, eles vão retornar dentro da array $_POST['foo'], ou seja, $_POST['foo'][0] vai ser o 1º campo marcado, $_POST['foo'][1] vai ser o 2º campo marcado, $_POST['foo'][2] vai ser o 3º campo marcado. Isso mesmo que alguns campos estejam desmarcados, a array vai trazer somente os que forem marcados.Depois da para fazer um for com um if dentro (para ver se está vazio) e ir colocando no bc Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsphp Postado Janeiro 21, 2005 Autor Denunciar Share Postado Janeiro 21, 2005 Eu encontrei um tópico que mostra isso e que trata as variáveis com um foreach(), num exemplo que o Fabyo colocou.<input type="checkbox" name="assunto" value="conto">CONTO<input type="checkbox" name="assunto" value="artigo">ARTIGO<input type="checkbox" name="assunto" value="piada">PIADAforeach($_POST['assunto'] as $assunto){echo "$assunto<br>"}Mas como INSERIR esses valorres no banco de dados?Valeu pessoal! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsphp Postado Janeiro 23, 2005 Autor Denunciar Share Postado Janeiro 23, 2005 Aí pessoal, após vários dias de quebra-cabeça, consegui fazer conforme abaixo. Se tiver algum debugger man que possa dar uma olhada no código para ver se não está com nenhum erro, seria bom para todo mundo, pois do jeito que está, tá gravando as variáveis no banco de dados.=============enquete1_form.php=============<HTML><HEAD><STYLE TYPE="text/css"><!--BODY, P {color: black; font-family: verdana; font-size: 10 pt}H1 {color: black; font-family: arial; font-size: 12 pt}--></STYLE></HEAD><BODY><TABLE BORDER=0 CELLPADDING=10 WIDTH=100%><TR><TD BGCOLOR="#F0F8FF" ALIGN=CENTER VALIGN=TOP WIDTH=17%></TD><TD BGCOLOR="#FFFFFF" ALIGN=LEFT VALIGN=TOP WIDTH=83%><H1>ENQUETE</H1><P>Quero receber informações dos seguintes assuntos:</P><FORM METHOD=POST ACTION="insere_enquete1.php"><INPUT TYPE=CHECKBOX NAME="artigo" VALUE=1> Artigo<BR><BR><INPUT TYPE=CHECKBOX NAME="art_aikido" VALUE=1> Artigo Aikido<BR><BR><INPUT TYPE=CHECKBOX NAME="art_empresa" VALUE=1> Artigo Empresa<BR><BR><INPUT TYPE=CHECKBOX NAME="dica" VALUE=1> Dica<BR><BR><INPUT TYPE=CHECKBOX NAME="conto" VALUE=1> Conto<BR><BR><INPUT TYPE=SUBMIT NAME="submit" VALUE="submit"></FORM></TD></TR></TABLE></BODY></HTML>==============insere_enquete1.php==============<?phpinclude "include.php";mysql_connect($hostname, $username, $password) or die("Não foi possível fazer a conexão!");mysql_select_db("muralcultural");// SE O FORMULÁRIO FOR SUBMETIDO, GRAVAR AS PREFEREENCIASif ($_POST['submit'] == 'submit') { if (!empty($_POST['artigo'])) { $artigo = 1; } else { $artigo = 0; } if (!empty($_POST['art_aikido'])) { $art_aikido = 1; } else { $art_aikido = 0; } if (!empty($_POST['art_empresa'])) { $art_empresa = 1; } else { $art_empresa = 0; } if (!empty($_POST['dica'])) { $dica = 1; } else { $dica = 0; } if (!empty($_POST['conto'])) { $conto = 1; } else { $conto = 0; } // Insere dados no banco de dados $query = "INSERT INTO enquete1 (artigo, art_aikido, art_empresa, dica, conto) VALUES ('$artigo', '$art_aikido', '$art_empresa', '$dica', '$conto')"; $result = mysql_query($query); if (mysql_affected_rows() == 1) { echo "<P>Os dados foram inseridos com sucesso!.</P>"; } else { echo "<P>Não foi possível inserir os dados.</P>"; }}echo "<p align=\"center\"><a href=\"visualiza_resultados.php\"><b>VER RESULTADOS</b></a></p>";?>================visualiza_resultados.php================<?phpinclude "include.php";$con = mysql_connect($hostname, $username, $password);mysql_select_db("muralcultural", $con);$query = "SELECT * FROM enquete1"; $result = mysql_query($query);$linhas = mysql_num_rows($result);for($i=0; $i<$linhas; $i++){$dados = mysql_fetch_row($result);$artigos = $dados[0];$art_aikido = $dados[1];$art_empresa = $dados[2];$dica = $dados[3];$conto = $dados[4];echo "$artigos - $art_aikido - $art_empresa - $dica - $conto<br>";}?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Janeiro 23, 2005 Denunciar Share Postado Janeiro 23, 2005 você pode fazer assim também:insere_enquete1.php:include "include.php";mysql_connect($hostname, $username, $password) or die("Não foi possível fazer a conexão!");mysql_select_db("muralcultural");//aqui defino tudo pra zero,dai se não foi marcado o campo já fica zero$artigo = 0;$art_aikido = 0;$art_empresa = 0;$dica = 0;$conto = 0;foreach ($_POST as $campo => $valor) { $$campo = $valor; }//dai o check que foi marcado sera com valor = 1 e o que não foi marcado sera 0 $query = "INSERT INTO enquete1 (artigo, art_aikido, art_empresa, dica, conto) VALUES ('$artigo', '$art_aikido', '$art_empresa', '$dica', '$conto')"; $result = mysql_query($query); if (mysql_affected_rows() == 1) { echo "<P>Os dados foram inseridos com sucesso!.</P>"; } else { echo "<P>Não foi possível inserir os dados.</P>"; }}echo "<p align=\"center\"><a href=\"visualiza_resultados.php\"><b>VER RESULTADOS</b></a></p>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsphp Postado Janeiro 24, 2005 Autor Denunciar Share Postado Janeiro 24, 2005 Valeu Fabyo,Só não entendi o que você colocou:$$campo = $valor; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Janeiro 24, 2005 Denunciar Share Postado Janeiro 24, 2005 $$ ira criar a variavel com o mesmo nome do campo do formularioexemplo se no formulario tem um campo nome $$campo ira ficar $nome Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsphp Postado Janeiro 24, 2005 Autor Denunciar Share Postado Janeiro 24, 2005 Nesse caso, se o usuário selecionar os assuntos artigos, art_aikido e conto, teremos um array assim:$array(1, 1, 0, 0, 1)O foreach vai ler esses valores e, da forma com que foi colocado por você ($$campo = $valor), ele vai atribuir o nome do campo a cada um dos valores desse array, com exceção dos valores 0.Então esse array ficaria assim:$array(artigo, art_aikido, 0, 0, conto)E, com isso, os valores inseridos no banco de dados seriam esses (artigos, art_aikido e conto)? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Janeiro 24, 2005 Denunciar Share Postado Janeiro 24, 2005 não é bem assim quando o foreach receber os dados do POST $$campo ele vai atribuir a $ pra cada campo exemplo:nome => $nomesenha => $senhaapenas isso ele ta pegando o nome do campo e colocando $e se viu que eu defini tudo pra zero antes dele dai o checkbox que não for selecionado não vai exitir então fica valendo a variavel que ta em cima do foreachcom valor zero, e se o checkbox foi marcado dai ele passa a existir e o valor será 1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsphp Postado Janeiro 24, 2005 Autor Denunciar Share Postado Janeiro 24, 2005 Acho que agora entendi. O foreach vai atribuir a $ aos valores que forem selecionados, ou seja, ele vai gerar (no exemplo) $artigo, $art_aikido e $conto, que, uma vez que estes "existem", vão receber o valor de "1".Com isso no banco de dados estes valores serão inseridos como "1", e para os demais (como foi declarado anteriormente "0") vai ser inserido o valor "0".Acho que é isso, não? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Janeiro 24, 2005 Denunciar Share Postado Janeiro 24, 2005 é isso mesmo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fsphp Postado Março 29, 2005 Autor Denunciar Share Postado Março 29, 2005 Editei o título deste tópico para ficar mais fácil quando a galera fizer buscas no site sobre esse título. Como existem muitos tópicos sobre o assunto, o caboclo tem que procurar de tópico por tópico para verificar se tem o que ele procura e muitas vezes o tópico não está resolvido e a gente perde um tempão nessas pesquisas e até acaba desistindo pois tem que ler muita coisa que as vezes não leva a nada. Então coloquei no título do tópico [RESOLVIDO] justamente para facilitar a busca. Sugiro que os demais façam dessa forma, ou seja, quando suas dúvidas forem resolvidas editem o tópico dessa forma. Como este tópico será novamente atualizado, fica bom para o Enlibra consultar, e depois tirar as dúvidas que ele tem. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fsphp
Estou quebrando a cabeça em como passar as variáveis dos checkbox para banco de dados.
Fiz assim:
formulario.php
<input type="checkbox" name="futebol" value="1">Futebol
-------------------------------
insere_variaveis.php
$futebol = $_POST['futebol'];
(INSERT INTO enquete VALUES futebol=$futebol'")/
-----------------------------------------
visualiza_dados.php
("SELECT futebol FROM enquete");
echo "$futebol"
----------------------------------------
Se o campo de futebol não é preenchido, o php não reconhece a variável que $_POST['futebol] que eu coloco no início da página insere_variaveis.php e dá mensegem de erro index.
O que devo fazer?
Link para o comentário
Compartilhar em outros sites
13 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.