1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Checkbox para apagar mensagens

Discussão em 'Web Development' iniciada por Frango., 18 de Novembro de 2008. (Respostas: 10; Visualizações: 737)

  1. Frango.

    Frango. Power Member

    Boas.

    Tenho um sistema de contacto, em que o pessoal envia a mensagem a partir de um formulário e eu recebo no painel as mensagens que eles enviaram.

    O que gostava de por lá, era uma checkbox em cada mensagem e um botão que ao clicar nele apagava as mensagens seleccionadas.

    Neste momento eu uso um link, e tenho de apagar uma a uma. O link que uso é:

    Código:
    '?del=".$id."'
    E o código php para apagar:

    PHP:
    if ($_GET['del']) {
    $delete $_GET['del'];
    $delque "DELETE FROM contacto WHERE id='{$delete}'";
    mysql_query($delque);
    }
    Cumprimentos ;)
     
  2. se para cada box tens um id da checkbox
    Código:
    <form  .. get ...>
    <INPUT TYPE="checkbox"[B] NAME="box0" VALUE="idxx"[/B]>
    <INPUT TYPE="checkbox"[B] NAME="box1" VALUE="idxx"[/B]>
    <INPUT TYPE="checkbox"[B] NAME="box2" VALUE="idxx"[/B]>
    <!--
    N de boxs por página
    !-->
    <[B]input[/B]
            TYPE="hidden"
            VALUE="10"
            NAME="nbox" >
    </form>
    
    
    $nbox=[COLOR=#000000][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'nbox'[/COLOR][COLOR=#007700]];
    
    [/COLOR][/COLOR] for($i=0;$i<[COLOR=#000000][COLOR=#0000bb]$nbox[/COLOR][COLOR=#007700];$i++){[/COLOR][/COLOR]
    
    [COLOR=#000000][COLOR=#007700]if ([/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'box'.$i.''[/COLOR][COLOR=#007700]]) {
    [/COLOR][COLOR=#0000bb]$delete [/COLOR][COLOR=#007700]= [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'box'.$i.''[/COLOR][COLOR=#007700]][/COLOR][/COLOR][COLOR=#000000][COLOR=#007700];
    [/COLOR][COLOR=#0000bb]$delque [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"DELETE FROM contacto WHERE id='{$delete}'"[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000bb]mysql_query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$delque[/COLOR][COLOR=#007700]);
    }  [/COLOR][/COLOR]
    
    [COLOR=#000000][COLOR=#007700]}  [/COLOR][/COLOR]
     
    apenas uma ideia.

    cumps
     
    Última edição pelo moderador: 19 de Novembro de 2008
  3. naoliveira

    naoliveira Power Member

    PHP:
    <form  .. get ...>
    <
    INPUT TYPE="checkbox" NAME="box" VALUE="01">
    <
    INPUT TYPE="checkbox" NAME="box" VALUE="02">
    <
    INPUT TYPE="checkbox" NAME="box" VALUE="03">
    </
    form>

    $del_id $_GET['box']

    $delque "DELETE FROM contacto WHERE id IN {$del_id}'";
    mysql_query($delque);
    }  

    }
     
  4. Frango.

    Frango. Power Member

    quando seleciono uma mensagem e clico em apagar não faz nada.. qual será o erro?

    PHP:
    <?php
    if (isset($_POST['apagar'])) {
        
    $del_id $_POST['id'];
        
    $delque "DELETE FROM contacto WHERE id IN {$del_id}'";
        
    mysql_query($delque);
    }

    $query "SELECT * FROM contacto ORDER BY id ASC";
    $result mysql_query($query);

    echo 
    "<form action=\"\" method=\"post\" name=\"dados\"><input type=\"submit\" value=\"apagar\" name=\"apagar\" class=\"style2\">";

    while (
    $row mysql_fetch_assoc($result)) {
    $id $row['id'];
    $name $row['name'];
    $mail $row['mail'];
    $assunto $row['assunto'];
    $mensagem $row['mensagem'];
    $data_msg $row['data_msg'];
    $ip $row['ip'];
    echo 
    "<tr><td><input type=\"checkbox\" name=\"id\" value=\"$id\" /> <span class='style3'>".$assunto."</span></td></tr><td><font class='style2'>De: ".$name." - ".$mail."</span></td><tr><td><font size='2px' face='Arial'><br>".$mensagem."</font></td></tr><td><span class='style2'>".$ip." - ".$data_msg." <a href='?del=".$id."'>Eliminar</a></span></td><tr><td><br></td></tr></form>";
    }

    echo 
    "</form>";

    ?>
    Obrigado :)
     
  5. naoliveira

    naoliveira Power Member

    Altera esta linha:

    $delque = "DELETE FROM contacto WHERE id IN ({$del_id})";
     
  6. Frango.

    Frango. Power Member

    Já apaga, mas se seleccionar mais que uma so apaga uma..

    como resolvo isto?

    Cumps ;)
     
  7. krunch

    krunch Power Member

    Em vez de apagares apenas um ID especifico, tens de iterar sobre os IDs que te vieram no pedido (de 01 a 99, por exemplo).
    Para aqueles que conseguires ler no POST, tens de concatena-los e meter dentro do IN do SQL.
    Got it, Frango?
     
  8. Frango.

    Frango. Power Member

    Uma parte já está resolvida (agradecimentos ao naoliveira :)), mas sem nenhuma box selecionada, ao clicar no botão 'Eliminar' dá-me este erro:

    Código:
    Warning:  implode() [[URL="http://localhost/request/function.implode"]function.implode[/URL]]: Invalid arguments passed in C:\wamp\www\request\mail.php on line 140
    Como o resolvo?

    Line 140:

    PHP:
    $del_id implode(","$_POST['id']);
     
  9. Frango.

    Frango. Power Member

  10. naoliveira

    naoliveira Power Member

    PHP:
    if (is_array ($_POST['id']))
        
    $del_id implode(","$_POST['id']); 
    else
        
    $del_id =  $_POST['id']; 
     
  11. Frango.

    Frango. Power Member

    solved ;)
     

Partilhar esta Página