Jump to content


Photo

Excluir Múltiplos Campos Do Tipo Checkbox


  • Faça o login para participar
8 replies to this topic

#1 Greg

Greg

    Ativo

  • Usuários
  • 302 posts
  • Sexo:Não informado
  • Localidade:Florianópolis

Posted 09/09/2007, 08:32

Daew pessoal, possuo uma página onde o usuário possui uma lista de registros e ao lado de cada registro existe uma campo checkbox para o mesmo excluir aquele registro. Eu gostaria de saber como faço para permitir o usuário selecionar quantos registros desejar e excluí-los de uma só vez.
Segue uma parte do código para melhor visualizção.
Obrigado!


[codebox]$consulta = mysql_query('SELECT titulo,chamada FROM noticias order by titulo');
$cont = 0;
while($arrayConsulta = mysql_fetch_array($consulta)){
$noticiaid = $arrayConsulta['noticia_id'];
$titulo = $arrayConsulta['titulo'];
$chamada = $arrayConsulta['chamada'];
if($cont%2 == 0){
$cor = '#FFFFFF';
}else{
$cor = '#CCCCCC';
}
$cont++;
?>
<tr bgcolor='<?=$cor;?>'</tr>
<td><div align="center"><a href="editar.php?noticia=<?=$noticiaid?>" class="labels" onMouseOut="this.className='labels';" onMouseOver="this.className='titulos';"><?=$titulo;?></font></div></td>
<td><div align="center"><a href="editar.php?noticia=<?=$noticiaid?>" class="labels" onMouseOut="this.className='labels';" onMouseOver="this.className='titulos';"><?=$chamada;?></font></div></td>
<td><div align="center"><input type="checkbox" name="checkbox" value="checkbox"></div></td>
</tr>
<?
}
?>
<tr>
<td></td>
<td></td>
<td>
<div align="center"><input type="submit" name="Excluir" value="Excluir"></div>
</td>
</tr>[/codebox]

#2 dilneiss

dilneiss

    Dilnei Soethe Spancerski

  • Usuários
  • 146 posts
  • Sexo:Masculino

Posted 09/09/2007, 22:58

tbm to interessado em saber essa.. será muito util exclusao nesse estilo..
<?php
define("MELHOR_FORUM_DO_MUNDO", "Webmasters Online");
echo MELHOR_FORUM_DO_MUNDO;
?>

#3 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 09/09/2007, 23:10

tenta usar foreach()

não sei te dizer qual seria mais indicado para teu caso... eu uso foreach para casos semelhantes... mas sei lá...

Talvez alguém possa ter uma dica melhor

;)Até mais

#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 09/09/2007, 23:52

Eu também utilizaria o foreach() como o Crab disse também.

Ai no seu formulário, você só precisaria alterar os campos checkbox para serem um vetor, assim:
<input type="checkbox" name="checkbox" value="checkbox[]">

Flws...
(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 10/09/2007, 00:06

Na verdade n é bem assim

dentro do seu loop coloque o nome do campo do checkbox junto com um '[]"

Assim você vai dizer que na hora de passar o campo pro php, vai ser uma array ;D

<?php

while ($condicao) {
   echo "<input type=\"checkbox\" name=\"checkbox[]\" value=\"" . $valor . "\">";
}

deu pra ter uma noção?

dae na hora do submit, só usar um foreach, um for, ou um while ;)

espero que tenha entendido

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 10/09/2007, 08:17

Ops.. é verdade.. :D

Confundi value com name. Valeu savior (y)

E já que está quase na resposta... :P

<?php
foreach($_POST['checkbox'] as $valor)
{
	// $valor é a variável que você precisa para cada checkbox marcado
}?>

Flws...
^_^Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 dilneiss

dilneiss

    Dilnei Soethe Spancerski

  • Usuários
  • 146 posts
  • Sexo:Masculino

Posted 12/09/2007, 19:31

gente, teria como postarem um exemplo desse código?
enviando de um arquivo php e recebendo em outro php...

assim fica mole mole de entender =)


brigado pela ajuda
<?php
define("MELHOR_FORUM_DO_MUNDO", "Webmasters Online");
echo MELHOR_FORUM_DO_MUNDO;
?>

#8 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 12/09/2007, 19:41

Olá.

Arquivo noticias.php

$consulta = mysql_query('SELECT titulo,chamada FROM noticias order by titulo');
  $cont = 0;
  while($arrayConsulta = mysql_fetch_array($consulta)){
	  $noticiaid = $arrayConsulta['noticia_id'];
	  $titulo = $arrayConsulta['titulo'];
	$chamada = $arrayConsulta['chamada'];
	if($cont%2 == 0){
		$cor = '#FFFFFF';
	}else{
		$cor = '#CCCCCC';
	}
	$cont++;
	  ?>
	<tr bgcolor='<?=$cor;?>'</tr>
		<td><div align="center"><a href="editar.php?noticia=<?=$noticiaid?>" class="labels" onMouseOut="this.className='labels';" onMouseOver="this.className='titulos';"><?=$titulo;?></font></div></td>
		<td><div align="center"><a href="editar.php?noticia=<?=$noticiaid?>" class="labels" onMouseOut="this.className='labels';" onMouseOver="this.className='titulos';"><?=$chamada;?></font></div></td>
		<td><div align="center"><input type="checkbox" name="checkbox" value="checkbox"></div></td>
	</tr>
	<?
  }
  ?>
  <tr>
	  <td></td>
	<td></td>
	<td>
		<div align="center"><input type="submit" name="Excluir" value="Excluir"></div>
	 </td>
   </tr>


Arquivo deletar.php

$id = addslashes(htmlentities($_POST['id']));
foreach($id as $c) {
mysql_query("DELETE FROM noticias WHERE noticia_id = '".$c."'") or die(mysql_error());
}

No arquivo noticias.php você coloca para como checkbox do modo como disseram acima.
Tudo funcionará.

Até mais ^_^

Edição feita por: _Dudu_1533, 12/09/2007, 19:42.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#9 Renan Gonçalves

Renan Gonçalves

    Web Developer

  • Usuários
  • 771 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP
  • Interesses:Programar PHP, Java (e JSP), Javascript (com Ajax, claro), Ruby (on Rails) !

Posted 12/09/2007, 19:48

Dudu,

Mesmo você tratando um array como uma String irá funcionar ? :huh:

$id = addslashes(htmlentities($_POST['id']));
foreach($id as $c) {
mysql_query("DELETE FROM noticias WHERE noticia_id = '".$c."'") or die(mysql_error());
}


Aconselho a fazer da seguinte forma: ?
$id = $_POST['id'];
foreach($id as $c) {
	  $c = addslashes(htmlentities($c));
	  mysql_query("DELETE FROM noticias WHERE noticia_id = '".$c."'") or die(mysql_error());
}


[]'s

Edição feita por: Renan Gonçalves, 12/09/2007, 19:51.

Renan Gonçalves
renan.saddam@gmail.com
(WebSite / Gmail / orkut / Windows Live! Messenger
)

"Aquele que se define se limita."





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq