Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel de Souza

[Resolvido] checkbox com value dinâmico

Recommended Posts

Oi rapaize, voltando com uma outra dúvida, estou querendo deletar os dados selecionados de um BD por uma check box, acontece que existe uma lista em que cada dado da tabela é repetido, o problema é que o $_POST fica sem nenhum valor, e então nada acontece no BD, veja só:

 

 

if(isset($_POST["excluir"])){


   if(isset($_POST["deletar"])) {		  	  


            foreach($_POST['deletar'] AS $key => $value){
            mysql_select_db($database, $nome_database);	
         $excluir = mysql_query("DELETE FROM album WHERE imagem = '".$value."'") or die(mysql_error());
		 $excluir2 = mysql_query($excluir, $nome_database);}
       	   echo "<meta HTTP-EQUIV='refresh' CONTENT='5;URL=pagina.php'>";
	   echo "imagens excluídas com sucesso!";
	   } else {
	   echo "Suas imagens não podem ser excluídas";

   }
}

<?php do { ?>


<p>DADO REGISTRADO: <?php echo $coluna_dados['dados']; ?></p>

<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">

<input type='checkbox' name='deletar[]'  value='<? $coluna_dados['dados']; ?>'>Deletar essa imagem
</form>

<?php } while ($coluna_dados = mysql_fetch_assoc($tabela)); ?>
<p>
<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
        <input type=submit value="Excluir imagens selecionadas" name="excluir">
</form>
</p>

 

É basicamente isso... parece fácil, mas sempre dá um probleminha rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

É incrível, o código funciona direitinho se eu atribuir $coluna_dados['dados'] à $_POST['deletar'], mas se eu deixo como está o $_POST['deletar'] simplesmente não recebe nada, não recebe valor nenhum do checkbox, ou seja o checkbox não está funcionando de jeito nenhum...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode ter dois forms com um a fazer submit do outro, so pode ter um form.

 

experimente assim (não testei mas deve estar a funcionar):

 

if(isset($_POST["excluir"])){


          if(isset($_POST["deletar"])) {                         


            foreach($_POST['deletar'] AS $key => $value){
            mysql_select_db($database, $nome_database);        
                $excluir = mysql_query("DELETE FROM album WHERE imagem = '".$value."'") or die(mysql_error());
                        $excluir2 = mysql_query($excluir, $nome_database);}
                  echo "<meta HTTP-EQUIV='refresh' CONTENT='5;URL=pagina.php'>";
                  echo "imagens excluídas com sucesso!";
                  } else {
                  echo "Suas imagens não podem ser excluídas";

   }
       }
<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
<?php do { ?>


<p>DADO REGISTRADO: <?php echo $coluna_dados['dados']; ?></p>



<input type='checkbox' name='deletar[]'  value='<? $coluna_dados['dados']; ?>'>Deletar essa imagem
//</form>

<?php } while ($coluna_dados = mysql_fetch_assoc($tabela)); ?>
<p>
//<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
        <input type=submit value="Excluir imagens selecionadas" name="excluir">
</form>
</p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

OI valeu a ajuda, eu tentei assim mais o $_POST continua como se estivesse sem nenhum valor, ele não está pegando o valor do checkbox estou até pensando em outras maneiras de excluir os dados sem precisar de checkbox, mas qualquer ajuda é muito bem vinda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui tem de colocar echo na variavel $coluna_dados:

 

<input type='checkbox' name='deletar[]'  value='<?php echo $coluna_dados['dados']; ?>'>Deletar essa imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui tem de colocar echo na variavel $coluna_dados:

 

<input type='checkbox' name='deletar[]'  value='<?php echo $coluna_dados['dados']; ?>'>Deletar essa imagem

 

Isso ai eu já havia colocado, mesmo assim tá dando ruim rs... nessa ai fiquei curioso pq aparentemente já deveria estar funcionando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz o seguinte teste e funcionou:

 

<?php
$i = 1;
if(isset($_POST["excluir"])){


          if(isset($_POST["deletar"])) {                         

                  print_r($_POST["deletar"]);      
            foreach($_POST['deletar'] AS $key => $value){
            	echo $key.'-'.$value.'<br />';

   		}
       }
}
?>
<form action="<?php echo $PHP_SELF; ?>" method="post"  enctype="multipart/form-data">
<?php do { $i++; ?>


<p>DADO REGISTRADO: <?php echo $coluna_dados['dados']; ?></p>



<input type='checkbox' name='deletar[]'  value='<?php echo $i; ?>'>Deletar essa imagem


<?php } while ($i<10); ?>
<p>

        <input type=submit value="Excluir imagens selecionadas" name="excluir">
</form>
</p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que quer deletar pelo nome da imagem, ele deve estar no value do checkbox, e faltou um echo na hora de colocar o valor no checkbox

 

<input type='checkbox' name='deletar[]' value='<?php echo $coluna_dados['imagem']; ?>'>Deletar essa imagem

 

E no foreach use apenas assim;

 

foreach($_POST['deletar'] as $value){

 

Tenta assim amigo.

 

Até mais

 

Oi rapaize, voltando com uma outra dúvida, estou querendo deletar os dados selecionados de um BD por uma check box, acontece que existe uma lista em que cada dado da tabela é repetido, o problema é que o $_POST fica sem nenhum valor, e então nada acontece no BD, veja só:

 

 

if(isset($_POST["excluir"])){


   if(isset($_POST["deletar"])) {		  	  


            foreach($_POST['deletar'] AS $key => $value){
            mysql_select_db($database, $nome_database);	
         $excluir = mysql_query("DELETE FROM album WHERE imagem = '".$value."'") or die(mysql_error());
		 $excluir2 = mysql_query($excluir, $nome_database);}
       	   echo "<meta HTTP-EQUIV='refresh' CONTENT='5;URL=pagina.php'>";
	   echo "imagens excluídas com sucesso!";
	   } else {
	   echo "Suas imagens não podem ser excluídas";

   }
}

<?php do { ?>


<p>DADO REGISTRADO: <?php echo $coluna_dados['dados']; ?></p>

<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">

<input type='checkbox' name='deletar[]'  value='<? $coluna_dados['dados']; ?>'>Deletar essa imagem
</form>

<?php } while ($coluna_dados = mysql_fetch_assoc($tabela)); ?>
<p>
<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
        <input type=submit value="Excluir imagens selecionadas" name="excluir">
</form>
</p>

 

É basicamente isso... parece fácil, mas sempre dá um probleminha rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá, eu já tentei essas maneiras tds, no momento ficou assim:

 

if(isset($_POST["excluir"])){


          if(isset($_POST["deletar"])) {                         


            foreach($_POST['deletar'] AS $value){
            mysql_select_db($database, $nome_database);        
                $excluir = mysql_query("DELETE FROM album WHERE imagem = '".$value."'") or die(mysql_error());
                        $excluir2 = mysql_query($excluir, $nome_database);}
                  echo "<meta HTTP-EQUIV='refresh' CONTENT='5;URL=pagina.php'>";
                  echo "imagens excluídas com sucesso!";
                  } else {
                  echo "Suas imagens não podem ser excluídas";

   }
       }

<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
<?php do { ?>


<p>DADO REGISTRADO: <?php echo $coluna_dados['dados']; ?></p>



<input type='checkbox' name='deletar[]'  value='<? echo $coluna_dados['dados']; ?>'>Deletar essa imagem


<?php } while ($coluna_dados = mysql_fetch_assoc($tabela)); ?>
</form>
<p>
<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
        <input type=submit value="Excluir imagens selecionadas" name="excluir">
</form>
</p>

 

Reparem que eu dessa vez estou colocando o 'form' fora do campo de repetição, o que ocorre, o FOREACH e o processo de deletar no BD funcionam perfeitamente, o que acontece é que ao clicar no 'submit' e enviar o $_POST ele cai naquela primeira IF lá em cima, o isset verifica se existiu o $_POST['excluir'] para seguir o código, até ai tudo bem, mas ao verificar no segundo IF se existe o $_POST['deletar'] ele está retornando 'NULL' ou seja não está existindo esse $_POST então ele imprime a mensagem de erro : "Suas imagens não podem ser excluídas". Expliquei bem? Provavelmente o problema está na checkbox e certamente o $_POST['deletar'] está retornando vazio, sem nenhum dado. Mas na minha visão está tudo certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara tenta o seguinte,

 

Tira o if do deletar e deixa somente no foreach, como o campo checkbox só manda os valores que estão checkeds não vai ter problema.

 

Acho que o problema pode estar nesta linha:

<input type='checkbox' name='deletar[]'  value='<? echo $coluna_dados['dados']; ?>'>Deletar essa imagem

 

Mesmo dando o echo para exibir o $coluna_dados['dados'] acho que o nome do campo é imagem, não é isso:

<input type='checkbox' name='deletar[]'  value='<? echo $coluna_dados['imagem']; ?>'>Deletar essa imagem

 

Até mais

 

E tenta exibir os dados do $_POST['deletar'] tipo print_r($_POST['deletar']), se está pulando o if ele estão indo vazio e se for o caso o problema vai estar no form.

 

Ainda na mesma...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mt feliz aqui, criei um albúm de fotos parecido com o do orkut, vamos lá, resolvi o problema, Rafael Impacto , esse código que eu postei é fantasia, só pra passar a lógica do meu problema, no meu código está tudo certinho, todas as variáveis estavam corretas, só aqui que na hora de escrever eu acabei colocando assim, errado.

 

Eu tirei aquele segundo IF e o joguei para mais abaixo.

 

E aprendi uma coisa com esse problema, os checkboxs só funcionam com o submit no mesmo form, por isso eu tive que fazer o seguinte:

 

if(isset($_POST["excluir"])){


            foreach($_POST['deletar'] AS $value){
            mysql_select_db($database, $nome_database);        
                $excluir = mysql_query("DELETE FROM album WHERE dados = '".$value."'") or die(mysql_error());
                        $excluir2 = mysql_query($excluir, $nome_database);}
             if($_POST['deletar'] != ""){
                  echo "<meta HTTP-EQUIV='refresh' CONTENT='5;URL=pagina.php'>";
                  echo "dados excluídos com sucesso!";
                  } else {
                  echo "Seus dados não podem ser excluídos";
   }

   }
       }

<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
<?php do { ?>


<p>DADO REGISTRADO: <?php echo $coluna_dados['dados']; ?></p>



<input type='checkbox' name='deletar[]'  value='<? echo $coluna_dados['dados']; ?>'>Deletar esses dados


<?php } while ($coluna_dados = mysql_fetch_assoc($tabela)); ?>

<input type="submit" value="Excluir dados selecionados" name="excluir">

</form>

 

Agora o submit ficou dentro do form e está tudo ok, obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, que bom que resolveu

 

até mais

 

Mt feliz aqui, criei um albúm de fotos parecido com o do orkut, vamos lá, resolvi o problema, Rafael Impacto , esse código que eu postei é fantasia, só pra passar a lógica do meu problema, no meu código está tudo certinho, todas as variáveis estavam corretas, só aqui que na hora de escrever eu acabei colocando assim, errado.

 

Eu tirei aquele segundo IF e o joguei para mais abaixo.

 

E aprendi uma coisa com esse problema, os checkboxs só funcionam com o submit no mesmo form, por isso eu tive que fazer o seguinte:

 

if(isset($_POST["excluir"])){


            foreach($_POST['deletar'] AS $value){
            mysql_select_db($database, $nome_database);        
                $excluir = mysql_query("DELETE FROM album WHERE dados = '".$value."'") or die(mysql_error());
                        $excluir2 = mysql_query($excluir, $nome_database);}
             if($_POST['deletar'] != ""){
                  echo "<meta HTTP-EQUIV='refresh' CONTENT='5;URL=pagina.php'>";
                  echo "dados excluídos com sucesso!";
                  } else {
                  echo "Seus dados não podem ser excluídos";
   }

   }
       }

<form action="<? echo $PHP_SELF ?>" method=post  enctype="multipart/form-data">
<?php do { ?>


<p>DADO REGISTRADO: <?php echo $coluna_dados['dados']; ?></p>



<input type='checkbox' name='deletar[]'  value='<? echo $coluna_dados['dados']; ?>'>Deletar esses dados


<?php } while ($coluna_dados = mysql_fetch_assoc($tabela)); ?>

<input type="submit" value="Excluir dados selecionados" name="excluir">

</form>

 

Agora o submit ficou dentro do form e está tudo ok, obrigado a todos.

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.