Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ibuh

CheckBox

Recommended Posts

ibuh

Boa tarde, tenho um dúvida que me impede de terminar um trabalho.

Passo a explicar:

Tenho 10 checkbox (Cada uma referente a um nome de pessoa)

Se nenhum checkbox estiver selecionada, todos os nomes terão de aparecer após submeter o formulário.

Senão se alguma estiver selecionada terá de aparecer todos os nomes, menos os selecionados.

A minha dúvida é saber quando está seleccionado e não mostrar ...ou quando não está mostrar tudo.

Ant. grato pela ajuda.

Cumpts.

Share this post


Link to post
Share on other sites
ibuh

Sim tenho só preciso mesmo da condição / ciclo.

Este é a condição / ciclo que tenho. (Depois o resto é um formulário de checkboxes que tenho noutra página)

<?php
			if (!$turma)
			{
		  		echo "Nenhum Aluno Faltou.";
				// aqui deveria aparecer todos os VALUES das checkbox, ou seja os nomes de todos os alunos.
			}
	  		else
	  		{
				foreach ($turma as $b)
				{
		  			echo "FALTOU: $b</br>";

					// aqui deveria aparecer todos os nomesm MENOS os que foram seleccionados na checkbox.
				}
	  		}	

		?>

Share this post


Link to post
Share on other sites
mind

Independentemente de teres 0 ou 5 seleccionadas, aparecem os que não estão seleccionados.. Se tiveres um array com os nomes concorrente aos nomes das checkboxes.. tipo $nome com nomes, e checkboxes com nome nome# (nome0,nome1,nome2):

for($i = 0 ; $i < 10 ; $i++) {

if(!isset($_POST['nome'.i])) echo $nome[$i];

}

Não sei se é isto que estás à procura...

Share this post


Link to post
Share on other sites
ibuh

Boas, obrigado pela ajuda até este momento, mas ainda não consegui resolver o meu problema, vou mostrarvos mais coisas a ver se conseguimos chegar a algum(a) resultado/solução.



ESTA É CONDIÇÃO / CICLO QUE TENHO (COLOQUEI ALGUNS COMENTÁRIOS)


<?php 

			if (!empty($turma))
			{
			// ESTE CICLO ESTÁ CORRECTO. MOSTRA AS PESSOAS QUE FALTARAM, OU SEJA QUE FORAM MARCADAS COM UM
			// VISTO NA CHECKBOX. MAS O QUE EU QUERIA, É QUE APARECECEM OS NOMES DE QUEM NÃO FALTOU.

				echo "Faltou:</br>";
				for ($i=0; $i <=10; $i++)
				{
					echo $turma[$i];
				}		
			}
			else
			{
			// AQUI COMO PODE SER VISTO MOSTRA A MENSAGEM "TUDO PRESENTE", MAS O QUE DEVERÁ MOSTRAR SÃO OS NOMES
			// DE TODAS AS PESSOAS

				echo "Tudo Presente";
			}

		?>

AQUI FICA O FORMULÁRIO EM HTML DAS CHECKBOX QUE CRIEI.


<tr><td align="center" colspan="2"><input type="checkbox" name="turma[1]" value="João Correia"  />João Correia</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[2]" value="Nuno Pessoa" />Nuno Pessoa</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[3]" value="Cesário Verde" />Carlos Verde</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[4]" value="Cavaco Silva" />Cavaco Silva</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[5]" value="José Socrates" />José Socrates</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[6]" value="Tono Guterres" />Tono Guterres</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[7]" value="Tony Carreira" />Tony Carreira</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[8]" value="Filipe Guedes" />Filipe Guedes</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[9]" value="António Geraldes" />António Geraldes</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="turma[10]" value="Rui Gomes" />Rui Gomess</td></tr>


Agradeço toda a ajuda prestada.

cumpts.

APARTE: Usa o Geshi, torna o post mais apresentável. :)

Share this post


Link to post
Share on other sites
ibuh

Boas.

Obrigado por toda a ajuda disposta. =)

Consegui, chegar a uma solução 'básica', através de um amigo.

Aqui fica:

//A CONDIÇÃO PARA SE SELECIONAR NÃO MOSTRAR SENÃO MOSTRAR

<?php 



			if ($_REQUEST['aluno1'])
			 {
			 echo "";
			 }
			 else

			echo "Aluno1<br>";


			if ($_REQUEST['aluno2'])
			 {
			 echo "";
			 }
			 else

			echo "Aluno2<br>";

(...)

// AS CHECKBOX


<tr><td align="center" colspan="2"><input type="checkbox" name="aluno1" value="ALUNO1"  />ALUNO1a</td></tr>
	<tr><td align="center" colspan="2"><input type="checkbox" name="aluno2" value="ALUNO2" />ALUNO2</td></tr>

(...)

ESTÁ SOLUCIONADO O CASO.

CUMPTS

Share this post


Link to post
Share on other sites
mind

Se lesses o que eu disse, é bem mais inteligente do que isso -.-'....

Aplicando ao que fizeste, no script que trata os dados tens que ter o array dos nomes... e fazer:

for($i = 1 ; $i <= count($aluno) ; $i++) {
   if(!isset($_REQUEST['aluno'.$i])) echo $aluno[$i];
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.