Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

charlestech

Java Script + PHP

Recommended Posts

Consegui montar uma função que soma os checkboxes clicados pelo usuário via javascript e botar no form. O problema é que via php, ele está somando todos os checks(checks em geral) e não os checks de cada usuário. Ex.:

 

Quero que fique assim:

 

|Nome|Op1|Op2|Total|

|Fulano|<X>|< >|1|

|Cicrano|<X>|<X>|2|

|Beltrano|< >|< >|0|

|....

 

Ou seja, mostre qtas Op(opções) cada usuário clicou e mostre isso na coluna TOTAL.

 

Mas tá ficando assim:

 

|Nome|Op1|Op2|Total|

|Fulano|<X>|< >|3|

|Cicrano|<X>|<X>|0|

|Beltrano|< >|< >|0|

|....

 

Só dá certo a primeira linha, ou seja do usuario Fulano, já dos outros não, só muda o total geral e não de cada usuário.

 

Será que tenho que usar vetores?

 

Olha ai a função java script:

 

function contar() {var checkboxes = form1.checkbox;var cont = 0;for (var x=0; x < checkboxes.length; x++) {if (checkboxes[x].checked) {cont = cont + 1;}}document.getElementById('mostra').innerHTML = cont;}

 

e no html:

 

<?phpwhile ($linha = pg_fetch_assoc($resultado)){$nome = $linha["nome"];?><tr bgcolor="#FFFFFF"><td><?php echo $nome; ?></td><td><input type="checkbox" name="checkbox" value="checkbox" onclick="contar()"></td><td><input type="checkbox" name="checkbox" value="checkbox" onclick="contar()"></td><td><div id="mostra"></div></td></tr><?php}?>

Alguem pode me dar uma ajudinha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é um diário escolar.

 

Tenho os nomes, os dias e o total de faltas.

 

As faltas quero fazer usando checkbox, clicou no checkbox, a pessoa leva falta e na coluna da tabela

chamada Total (a ultima coluna) some a quantidade de faltas de cada aluno(checks marcados). Entende?

 

Fiz uma função em javascript pra fazer essa soma, só que está somando todos os checksboxes, de todos os

alunos (geral) e não linha por linha ou aluno por aluno.

 

Quero que some linha por linha. Ex.:

 

Nome | OP.1 | OP.2 | Total |

Artur | <x> | <x> | 0002 |

Miguel| <x> | <x> | 0002 |

 

 

Espero que enteda, me ajuda ai por favor.

 

 

 

Dá uma ohada ai pra você ver. Clica no link abaixo

 

http://www.fmt.to.gov.br/sicod/imt/chamada.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi... seria um controle de faltas entao separados por aluno.... ai vem a duvida minha pra eu poder te ajudar... como você ta armazenando? em txt, db, xml? pq pelo visto você ta querendo uma rotina de modo que ao clicar no seu checkbox e site execute uma rotina de armazenamento dos dados e lhe retorne uma resposta....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, exatamente por aluno.Quero salvar no banco de dados, só que antes de salvar, mostre na tela primeiro, e somente qdo clicar no botão submit, salve no BD. Creio que assim seja mais fácil, se não for pode ser ao contrário também, mas ai acho q teria que usar AJAX.Quero q fique igual já tá acontecendo na primeira linha(primeiro aluno) só que em todos alunos, separadamente. Mostrando o total pra cada aluno.me ajude ai vei, pois já tou desesperado

Compartilhar este post


Link para o post
Compartilhar em outros sites

function contar(rec) {var checkboxes = form1.checkbox;var cont = 0;for (var x=0; x < checkboxes.length; x++) {if (checkboxes[x].checked) {cont = cont + 1;}}document.getElementById('rec').innerHTML = cont;}

 

e no html:

 

<?php$cont=0;while ($linha = pg_fetch_assoc($resultado)){$cont++;$nome = $linha["nome"];?><tr bgcolor="#FFFFFF"><td><?php echo $nome; ?></td><?phpecho ("<td><input type=\"checkbox\" name=\"checkbox\" value=\"checkbox\" onclick=\"contar('$cont')\"></td>");echo ("<td><input type=\"checkbox\" name=\"checkbox\" value=\"checkbox\" onclick=\"contar('$cont')\"></td>");echo ("<td><div id='$cont'></div></td>");?></tr><?php}?>

 

cara concerteza deve ter jeitos + bunito pra fazer isso, + isso ai serve to sem apache aqui, tenta ae... do jeito que se tinha feito ele só jogava os valores pra div chamada mostra, tinha varias mostra porém ele só iria jogar no primero, para mostrar em uma div especifica foi necessario fazer esse contador para o nome nao se repetir. Para o form se tem que fazer o mesmo, eu n faço aqui pq to sem apache e se eu fizer capaz que voce se confunda mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu mano, quase deu certo, mas ainda não, mas creio que agora está perto.

 

Deve ter alguma coisa errada, pois qdo clico nos checks no canto esquerdo do IE está aparecendo erro de página.

 

Coloquei o código da página abaixo pra dar uma analisada:

 

 

http://www.charlestech.xpg.com.br/chamada.rar

 

 

Olha ai por favor o que será que está errado.

 

Se mais alguem também puder ajudar, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esqueceu de colocar o nome da div como $cont( a div que irar exibir os resultado precisa ter o nome $cont ), verifique tben sua funcao do javascript para contagem de checkbox, aqui ageitei isso e coloquei pra mostrar uma string na div, e aconteceu perfeitamente, porem qd eu pesso pra exibir o cont ou entao msm um alert nele nao aparece nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esqueceu de colocar o nome da div como $cont( a div que irar exibir os resultado precisa ter o nome $cont ), verifique tben sua funcao do javascript para contagem de checkbox, aqui ageitei isso e coloquei pra mostrar uma string na div, e aconteceu perfeitamente, porem qd eu pesso pra exibir o cont ou entao msm um alert nele nao aparece nada.

Mesmo colocando, não quer funcionar, será que não teria uma maneira sem usar o javascript... ???Trem canseira.Ajuda ai comunidade!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title><style type="text/css"><!--.style2 {font-family: Arial, Helvetica, sans-serif}.style4 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }.input{color:#330066;background-color:#FFFFFF;border: 1px solid #777777;font-weight: bold;font-family:Arial;font-size:10px;width:12px;height:9px;padding-bottom: 4px;padding-left: 0px;padding-right: 0px;padding-top: 0px;}.style7 {font-size: 11px}.style9 {color: #D2D2FF}.style11 {font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; }--></style><script language="javascript"> function contar(rec) { //var checkboxes = form1.checkbox;; //Array que contem os checkbox var cont = '0'; //Variavel que leva a quantidade dos checkbox clicados/*for (var x=0; x < checkboxes.length; x++) { if (checkboxes[x].checked) { cont = cont + 1; } }*/document.getElementById(rec).innerHTML = "Funcionou";} </script> </head><body><form name="form1" method="post" action=""> <table bgcolor="#FFFFFF"><tr><td bgcolor="#D2D2FF"><table width="1198" border="0" align="center" class="nome" cellpadding="0" cellspacing="1"><tr bgcolor="#FFFFFF">	<td width="329"><div align="center" class="style2 style7"><strong>Aluno</strong></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="22"><div align="center"><input name="data" type="text" id="data" maxlength="2" class="input"/><br/><input name="data" type="text" id="data" maxlength="2" class="input"/></div></td>	<td width="42" align="center" valign="top"><div align="center" class="style11">Total<br>Faltas</div></td>	<td width="45" align="center" valign="top"><span class="style11">Total<br>  Presen.</span></td></tr>	<?php   			$cont=0;		while ($cont!=3){		$cont++;		$matricula = "matricula";				$nome = "nome";					  ?>	   				<tr bgcolor="#FFFFFF">	  	  <td><div align="left" class="style2 style7">  <?php echo $nome; ?> </div></td>	  <?php	  echo "	   	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div align=\"center\"><input type=\"checkbox\" name=\"checkbox\" value=\"1\" onclick=\"contar('$cont')\"></div></td>	  <td><div id='$cont' align=\"center\" class=\"style4\">00</div></td><!-- esse  é que chama a função e mostra o resultado -->	  <td><div align=\"center\" class=\"style4\">20</div></td>";	  	?>	</tr>	<?php 	}		?></table></td></tr></table><p class="style9"> </p></form></body></html>

 

Retirei seus arquivos de banco de dados, para realizar o teste sem precisar fazer um, O Div deste ai ja esta funcionando só falta ageita a função de contar os checkbox.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tou quase conseguindo meu objetivo. Só q não estou conseguindo fazer exibir o resultado na tela sem ser via Alert.Com Alert vai mostrando certinho, mas queria que mostrasse na tela, num div ou numa textbox.Olha ai como está a função:<script language="javascript"> function contar(rec) { var form = document.getElementById('form1');var cont = 0;for (var x=0; x < form.elements.length; x++) {if( form.elements[x].type == 'checkbox' && form.elements[x].checked == true && form.elements[x].id.indexOf(rec) >= 0)cont = cont + 1;}alert(cont);} </script> Já useio o :document.getElementById(rec).innerHTML=cont e o document.getElementById(rec).value=cont;Mas não funciona, não exibe nem que a vaca tussa.Analise ai galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sua div que sera exibido os valores ta com ql id?(ela deve estar como id='$cont') o erro deve ser realmente no seu calculo de check box, tente fazer isso:<script language="javascript">function contar(rec) {document.getElementById(rec).innerHTML="teste";var form = document.getElementById('form1');var cont = 0;for (var x=0; x < form.elements.length; x++) {if( form.elements[x].type == 'checkbox' && form.elements[x].checked == true && form.elements[x].id.indexOf(rec) >= 0)cont = cont + 1;}alert(cont);}</script>qd você fizer isso c vai ve que o erro n eh na exibicao do cont e sim no proprio cont... a exibicao ja esta funcionado só resta fazer o calculo de checkbox corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.