Nigol 0 Denunciar post Postado Outubro 26, 2009 Olá galera... estou fazendo um programa para dar abertura e encerramentos em chamados técnicos. para isto usei uma tabela com hora do inicio do chamado e necessito que se um checkbox estiver marcado os chamados sejam finalizados. não estou conseguindo pegar o valor de true para o checkbox... if($validacao==1){ $banco = "pequenacasa1"; $tabela='solicitacao'; $conexao = mysql_connect("*****",'******','****')or die ( "ERRO NO BANCO DE DADOS"); mysql_select_db($banco,$conexao)or die (mysql_error()."... ERRO AO SELECIONAR BANCO"); //cabecalho da tabela ?> <p align="center"> <table border="1"> <tr> <form method="POST" action="lista-retira.php"> <td> <INPUT type="button" value="Voltar" onclick="javascript:window.open('escolha.php','_self')"> <td colspan="3" align="center"> <tr> <td><b>Finalizar</b></td> <td><b>Protocolo</b></td> <td><b>Solicitação</b></td> <td><b>Inicio</b></td> <? //PHP da tabela $query = "SELECT * FROM solicitacao WHERE fim IS NULL; "; $resultado = mysql_query ($query,$conexao); //EXIBIR while($linha=mysql_fetch_array($resultado)) { ?> <tr> <td align="center"> <input type="checkbox" name="checkbox[]" id="checkbox[]" value="<? echo $linha['codigo'];?>"></td> <td align="center"><? echo $linha['protocolo']; ?></td> <td><? echo $linha ['motivo'];?></td> <td><? echo $linha ['inicio'];?></td> </tr> <? } ?> <TR> <TD> <INPUT type="submit" value="Fechar Solicitação" name="editar"> </TD> </TR> </TABLE> <? ?></form> <? if (isset($editar)){ $co=mysql_query("SELECT * FROM $tabela ORDER BY codigo DESC LIMIT 1;"); $con=mysql_fetch_array($co); $cont=(int)($con[codigo]); $data=date("d-m-y H:i:s"); echo $data; $variavel = (isset($_POST["checkbox[]"]))?"sim":"não"; for($i=-1;$i<$cont;$i++){ # este for vai pegar o número correto da tabela e não a posição dele no array de checkbox if($variavel=="sim"){ $baixa="UPDATE $tabela SET fim='$data' where codigo='$i'"; mysql_query($baixa,$conexao); break; } } } } Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 26, 2009 Para 'marcar' um checkbox, você deve usar: checked="checked" O value deve permanecer o mesmo, tanto marcado como desmarcado. O acrescimo do atributo checked, eh que vai dizer se ele deve vir setado ou nao. Tem alguns posts meus com uma funcao para gerar checks marcados. http://forum.imasters.com.br/index.php?/topic/355482-checkbox-array-de-basedados-para-formulario/page__hl__checked__fromsearch__1 Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Outubro 26, 2009 Para 'marcar' um checkbox, você deve usar: checked="checked" O value deve permanecer o mesmo, tanto marcado como desmarcado. O acrescimo do atributo checked, eh que vai dizer se ele deve vir setado ou nao. Tem alguns posts meus com uma funcao para gerar checks marcados. http://forum.imasters.com.br/index.php?/topic/355482-checkbox-array-de-basedados-para-formulario/page__hl__checked__fromsearch__1 Não se ise eu que não entendi. ou a minha dúvida é outra... eu tenho que testar se o campo fim da tabela de solicitacao está com NULL ou não... se está com null ele imprime... (esta parte está operando) o que me falta seria percorrer esta lista e verificar quais checkbox estão marcados... se estiverem é para trocar o camo fim de NULL para a data e hora local. eu olhie o seu código(o último) e não entendi por exemplo por que tens linhas como $checked = 'checked="checked" '; pois assim apenas a variavel $checked terá um valor de 'checked="checked" '; e não veirificar se está ou não marcado o checkbox. Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Outubro 28, 2009 olhando vários fóruns e demais cheguei a este código que QQUASE FAZ O QUE EU QUERO o problema é que ele esta´excluindo TODOS os itens que apaarecem na tabela... não sei como pegar o VALUE de cada checkbox... como o faço? if (isset($editar)){ //seleciona a data e hora da baixa $data=date("d,m,y - h,i,s"); // verifica se a solicitação já recebeu baixa $query = "SELECT * FROM solicitacao WHERE fim IS NULL; "; $resultado = mysql_query ($query,$conexao); $linha=mysql_num_rows($resultado); // para percorrer todos os campos selecionados para o teste while($teste=Mysql_fetch_array($resultado)){ //para percorrer todos os checkbox for($i=0; $i<$linha;$i++) { // compara o value do checkbox com o código do item selecionado if($_POST['chk'][$i]== $teste['codigo']){ $update="UPDATE $tabela SET fim='$data'"; mysql_query($update)or die(mysql_error()); } } } } Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Outubro 29, 2009 CONSEGUI :D if (isset($editar)){ //seleciona a data e hora da baixa $data=date("d-m-y - h:i:s"); foreach($_POST["chk"] as $chk){ // lembrnado que para isso funcionar o chk deve ter um value igual ao código da tabela mysql_query("UPDATE solicitacao SET fim='$data' WHERE codigo='$chk'"); } Compartilhar este post Link para o post Compartilhar em outros sites