Ir para conteúdo

POWERED BY:

Arquivado

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

jeffersonbb

Checkbox marcar todos e atualizar banco

Recommended Posts

Eu tenho uma tabela com dados gravado em um banco eu quero poder selecionar alguns ou todos e atualizar e gravar no banco todos os que estiverem selecionados como Y?

 

Estou a 7 dias tentando e não encontro nada que funcione

 

 

 

veja como está aqui

 

user: cecestil

senha: 123456

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para selecionar todos

 

// coloque na tag header de sua página
<script type="text/javascript">
function SelecionarTodos( sel )
{
  var frm = document.ListEmails;
  var listaElementos = frm.elements;

  for(var i=0; i<listaElementos.length; i++)
  {
	var elemento = listaElementos[i];
	if( elemento.id == 'id[]' )
	{
	   elemento.checked = sel;
	}
  }
}
</script>

// e coloque o input de selecionar todos assim
<input name="selTodos" type="checkbox" id="selTodos" onclick="SelectionarTodos( this.checked )" />

Parte do PHP, para atualizar os registros

PHP
if( !empty($_POST['id']) && is_array($_POST['id']) )

{

  foreach($_POST['id'] as $item)

  {

     $sql = sprintf("UPDATE tabela SET removido = 1 WHERE id = %d", $item);

     $rs = mysql_query($sql, $conexao);

  }

}

 

Espero ter ajudado.

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu utilizo um codigo bem parecido e uso como arrays.

A vantagem de se utilizar um checkbox como array é que ele só será incluso caso for selecionado exemplo:

 

 

Seu HTML deve estar assim na propriedade name (como array)

<input type="checkbox" name="check[]" id="check1" value="<? echo $id; ?>">

No PHP

$check =  $_POST['check']; unset($_POST['check']);

Voce ja tem um array com todos os IDS que foram selecionados ai é so percorrer

foreach($check as $cid){
echo $cid."<br />";
								  }

ou mesmo
for($i=0;$i<count($check);$i++){
echo $check[$i]."<br />";
												 }

Sendo que os dados que são enviados no $check são só as ID´s dos selecionados os que não forem selecionados não estão no array

 

mas uma coisa se você ainda não esta fazndo valide suas variaveis eu vi que na sua página tá assim na URL:

http://www.financeiro.ackdata.com.br/admin...ails/painel.php?delete=sim&

 

já que é um formulario que você ta enviando não custa você por um

 

<input type="hidden" name="delete" value="sim">

e no php

if($_POST['delete']=="sim"){ ... }

nada que vá atrapalhar + não cria url suja e dificulta as ações dos curiosos em hacking (não muito mas ja e algo)

 

 

 

se você tiver alguma duvida ou quiser o meu codigo como exemplo falae

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sou iniciante em php e estou meio perdido não estou conseguindo fazer o que você falou!

 

 

este é meu primeiro sisteminha em php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pelo que eu entendi você precisa do ID da linha (ou mesmo do e-mail) para manipular os dados dentro do DB certo?

Então supõe-se que você crie a tela de exibição dinamicamente (com os dados do DB)

 

$select = "SELECT id, email FROM tabela ...";

if(mysql_num_rows($select)==0){ } //nenhuma linha encontrada no DB (sem resgistros)
else{

while($campo=mysql_fetch_assoc($select)){

<td><input type="checbox" name="check[]" value="<? echo $campo['id'];?>"> <? echo $campo['email'];?></td>
}//fecha while

 }//fecha else numrows=0

Bom até aqui eu sei que você ja sabe fazer pois seu sistema exibe estas informações (talvez não com os mesmo nomes de campos etc...)

Repare que aki eu usei como value dos checkbox o ID que seria o numero da linha a qual aquele e-mail corresponde (você pode adaptar ao seu sistema)

Note tambem que é preciso ter os sinais [ e ] no final do nome em HTML para se cria um array. exemplo: check[]

 

 

para saber os dados que você irá manipular sempre recomando exibir os dados que vêm dentro das suas variaveis

(neste caso ao ser enviado o formulário)

 

$check = $_POST['check'] //pega o valor do array html

print_r($check) //pra você ser o que está vindo na variavel

foreach($check as $cid){ //para cada valor NOVO de check cria-se uma variavel 'teporaria' chamada $cid

"UPDATE tb_emails SET status=2 WHERE id='".$cid."' LIMIT 1 "; //isto percorreria TODOS os IDS dos checkbox que foram SELECIONADOS mudando um campo chamado status para o valor 2 só para efeito de exemplo


}//fecha foreach

 

O ideal para você pegar a manha é exibir sempre o que esta sendo manipulado (echo, printf, etc...) se ao tentar dar um echo (ou se a variavel é um array) e o echo escrever Array ao invés do echo uso o print_r(nome_do_array)

 

Caso ainda precise de alguma ajuda poste seu codigo que fica bem + facil de explicar com os nomes dos campos que você mesmo usa

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde amigos,

a parte dos checkbox e tals tah beleza... o problema é... como desabilitar no banco o que eu "desmarquei" dos checkbox?!

 

Vem assim do BG:

 

[x] Opção 01

[x] Opção 02

[x] Opção 03

 

Mas ae eu quero retirar a opção 02 (bloquear, excluir, etc...)

[x] Opção 01

[ ] Opção 02

[x] Opção 03

 

Como eu iria reconhecer a segunda opção como "desmarcada" para atualiza-la ela no banco de dados?! Sendo que é só enviado para o meu programa as opções marcadas (neste caso Opção 01 e Opção 03)?!?!?!

 

Ae na próxima visita ao formulário tem que aparecer assim

[x] Opção 01

[ ] Opção 02

[x] Opção 03

 

 

Forte abraço a todos,

léo

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.