Vitor Talaia Postado Outubro 22, 2011 Denunciar Share Postado Outubro 22, 2011 Olá!Estou tendo problemas na hora de mostrar os valores das checkbox que foram selecionadas, quando mais de uma opção é selecionada, só é mostrada a última delas.Aqui estão os códigos:Formulário:<body> <form name="form1" method="post" action="save_Disciplina.php"> <label>Nome<br> <input type="text" name="txtNome" id="txtNome"> </label> <p> <label>Abreviação <br> <input type="text" name="txtAbreviacao" id="txtAbreviacao"> </label> </p> <p> <label>Área <label><br /> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="info">Informática </label><br> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="adm">Administração </label><br> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="mec">Mecânica </label><br> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="design">Design </label><br /> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="geral">Geral </label> </label> </p> <p> <label>Descrição<br> <textarea name="txtDescricao" id="txtDescricao"></textarea> </label> </p> <p> <input type="submit" value="Enviar" onClick="return Validar()"/> <input type="reset" value="Limpar Dados" /> </p> </form> <? if(isset($_SESSION["disciplina"])) include("list_Disciplina.php"); ?> </body> save_Disciplina: <?php session_start(); $nome = $_REQUEST["txtNome"]; $abreviacao = $_REQUEST["txtAbreviacao"]; if(isset($_REQUEST["chkArea"])) { foreach($_REQUEST["chkArea"] as $valor) { $area = $valor; } } $descricao = $_REQUEST["txtDescricao"]; $disciplina = array ("nome" => $nome, "abreviacao" => $abreviacao, "area" => $area, "descricao" => $descricao); if(isset($_SESSION["disciplina"])) array_push($_SESSION["disciplina"], $disciplina); else $_SESSION["disciplina"] = array($disciplina); header("Location:form_Disciplina.php"); ?> list_Disciplina: <table> <th>Nome</th> <th>Abreviação</th> <th>Área</th> <th>Descrição</th> <? foreach($_SESSION["disciplina"] as $disciplina){ extract($disciplina, EXTR_OVERWRITE); ?> <tr> <td align="center"><?=$nome;?></td> <td align="center"><?=$abreviacao;?></td> <td align="center"><?=$area;?></td> <td align="center"><?=$descricao;?></td> </tr> <? } ?> </table>Estou quebrando a cabeça rsrsrsrsAgradeço desde jáAh... e eu upei os arquivos, pra fazer um teste, estão em: http://interguerreiro.orgfree.com/Discipli..._Disciplina.php Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Outubro 22, 2011 Denunciar Share Postado Outubro 22, 2011 Olá Vitor,eu não testei, por isso não sei se daria certo, mas já tentou colocar essa linha:$disciplina = array ("nome" => $nome, "abreviacao" => $abreviacao, "area" => $area, "descricao" => $descricao);dentro do foreach(), ficando assim...if(isset($_REQUEST["chkArea"])) { foreach($_REQUEST["chkArea"] as $valor) { $area = $valor;$disciplina = array ("nome" => $nome, "abreviacao" => $abreviacao, "area" => $area, "descricao" => $descricao); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vitor Talaia Postado Outubro 23, 2011 Autor Denunciar Share Postado Outubro 23, 2011 Olá Vitor,eu não testei, por isso não sei se daria certo, mas já tentou colocar essa linha:$disciplina = array ("nome" => $nome, "abreviacao" => $abreviacao, "area" => $area, "descricao" => $descricao);dentro do foreach(), ficando assim...if(isset($_REQUEST["chkArea"])) { foreach($_REQUEST["chkArea"] as $valor) { $area = $valor;$disciplina = array ("nome" => $nome, "abreviacao" => $abreviacao, "area" => $area, "descricao" => $descricao); } }Acabei de testar aqui e ele deu a mesma coisa, nossa to viajando nisso já heheheheObrigado pela força! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mJi Postado Outubro 23, 2011 Denunciar Share Postado Outubro 23, 2011 Tente trocar isto:if(isset($_REQUEST["chkArea"])) { foreach($_REQUEST["chkArea"] as $valor) { $area = $valor; } } por isto: if(isset($_REQUEST["chkArea"])) { foreach($_REQUEST["chkArea"] as $valor) { $area[] = $valor; } }A variável $area estava recebendo cada valor de uma vez, ou seja, o último sobreescreve o penultimo que sobreescreve o antepenúltimo....Colocando o '[]', a variável $area torna-se um vetor que recebera em cada indice um valor. Os indices serão automaticamente numerados. Na dúvida, dá um print_r($area). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Outubro 23, 2011 Denunciar Share Postado Outubro 23, 2011 Vitor,eu fiz dessa forma. Fiz uma modificação.. veja:Formulário<!DOCTYPE HTML><html><head><meta charset="iso-8859-1"><title>Untitled Document</title></head><body> <form name="form1" method="post"> <label>Nome<br> <input type="text" name="txtNome" id="txtNome"> </label> <p> <label>Abreviação <br> <input type="text" name="txtAbreviacao" id="txtAbreviacao"> </label> </p> <p> <label>Área <label><br /> <input type="checkbox" name="chkArea[]" id=chkArea[]" value="info">Informática </label><br> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="adm">Administração </label><br> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="mec">Mecânica </label><br> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="design">Design </label><br /> <label> <input type="checkbox" name="chkArea[]" id="chkArea[]" value="geral">Geral </label> </label> </p> <p> <label>Descrição<br> <textarea name="txtDescricao" id="txtDescricao"></textarea> </label> </p> <p> <input type="submit" name="submit" value="Enviar" onClick="return Validar()"/> <input type="reset" value="Limpar Dados" /> </p> </form> <?php if($_REQUEST["submit] == "Enviar") include("save_Disciplina.php"); if(isset($_REQUEST["fechar"])): unset($_SESSION["disciplina"]); endif; ?> <a href=?fechar"> Fechar sessão</a>save_Disciplina<?php session_start(); $nome = $_REQUEST["txtNome]; $abreviacao = $_REQUEST["txtAbreviacao"]; $descricao = $_REQUEST["txtDescricao"]; ?> <table> <th>Nome</th> <th>Abreviação</th> <th>Área</th> <th>Descrição</th><?php if(isset($_REQUEST["chkArea"])) { foreach($_REQUEST["chkArea"] as $valor) { $area = $valor;?> <tr> <td align="center"><?=$nome;?></td> <td align="center"><?=$abreviacao;?></td> <td align="center"><?=$area;?></td> <td align="center"><?=$descricao;?></td> </tr><?php } } ?>Esse é meu raciocínio que fugiu um pouco do seu.... foi a forma mais simples que encontrei...abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vitor Talaia Postado Outubro 23, 2011 Autor Denunciar Share Postado Outubro 23, 2011 Hum... vou salvar o teu código aqui pra eu dar uma olhada amanhã quando acordar, sempre é bom dar uma olhada em maneiras diferentes de programar né heheheEu segui a dica do @mJi colocando tudo em um array, e usando implode pra mostrar os valores separados:$areas = implode("; ", $area);E agora tá funcionando \o/http://interguerreiro.orgfree.com/Discipli..._Disciplina.phpObrigado pela ajuda!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mJi Postado Outubro 23, 2011 Denunciar Share Postado Outubro 23, 2011 Hum... vou salvar o teu código aqui pra eu dar uma olhada amanhã quando acordar, sempre é bom dar uma olhada em maneiras diferentes de programar né heheheEu segui a dica do @mJi colocando tudo em um array, e usando implode pra mostrar os valores separados:$areas = implode("; ", $area);E agora tá funcionando \o/http://interguerreiro.orgfree.com/Discipli..._Disciplina.phpObrigado pela ajuda!!!=DQualquer coisa, tamo ae Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MTavares Postado Outubro 23, 2011 Denunciar Share Postado Outubro 23, 2011 Show Vitor,o meu código deu problema que não vi na hora, ele não traz os resultados abaixo dos outros... mas a solução que tem é boa...dei uma olhada aqui... abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Vitor Talaia
Olá!
Estou tendo problemas na hora de mostrar os valores das checkbox que foram selecionadas, quando mais de uma opção é selecionada, só é mostrada a última delas.
Aqui estão os códigos:
Formulário:
save_Disciplina: list_Disciplina:Estou quebrando a cabeça rsrsrsrs
Agradeço desde já
Ah... e eu upei os arquivos, pra fazer um teste, estão em: http://interguerreiro.orgfree.com/Discipli..._Disciplina.php
Link para o comentário
Compartilhar em outros sites
7 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.