Foros del Web » Programando para Internet » PHP »

PHP OO eliminar registro mediante checkbox

Estas en el tema de eliminar registro mediante checkbox en el foro de PHP en Foros del Web. mi formulario tiene un submit para Buscar y otro submit para eliminar al hacer clic en el checkbox espero sus respuestas Gracias Código PHP: <?PHP ...
  #1 (permalink)  
Antiguo 16/04/2014, 13:49
 
Fecha de Ingreso: marzo-2014
Mensajes: 19
Antigüedad: 10 años, 1 mes
Puntos: 1
eliminar registro mediante checkbox

mi formulario tiene un submit para Buscar
y otro submit para eliminar al hacer clic en el checkbox
espero sus respuestas Gracias

Código PHP:
<?PHP
            
if(isset($_GET["categoria"])){
            
$categoria=$_GET["categoria"];
            
$_pagi_sql=("SELECT * FROM productos WHERE categoria = '$categoria'");
            
$_pagi_cuantos15;
            include(
"paginator.inc.php");
            while(
$rs=mysql_fetch_array($_pagi_result)){
            echo 
"
            <tr>
                <td class=\"tdrow1\" align=\"center\"><input type=\"checkbox\" name=\"box\" /></td>
                <td class=\"tdrow1\">"
.$rs['modelo']."</td>
                <td class=\"tdrow1\" align=\"center\">"
.$rs['categoria']."</td>
                <td class=\"tdrow1\" align=\"center\">"
.$rs['precio']."</td>
                <td class=\"tdrow1\" align=\"center\">"
.$rs['fecha']."</td>
                <td align=\"center\">
                <table>
                <tr>
                    <td width=\"40\" align=\"center\">
                    <a onclick=\"willSubmit=confirm('¿Esta seguro de eliminar este registro?'); return willSubmit;\"
                    href=\"eliminar.php?id="
.$rs['id']."\">
                    <img src=\"IMG_20140107_231001_0.jpg\" height=\"20\" width=\"20\" /></a>
                    </td>
                    <td width=\"40\" align=\"center\">
                    <a href=\"editar.php\"><img src=\"IMG_20140107_231001_0.jpg\" height=\"20\" width=\"20\" /></a>
                    </td>
                </tr>
                </table>
                </td>
            </tr>
                 "
;
            }
            }else{
            
$buscar=$_POST["modelo"]; 
            
$_pagi_sql=("SELECT * FROM productos WHERE modelo LIKE '%$buscar%' ");
            
$_pagi_cuantos15;
            include(
"paginator.inc.php");
            while(
$rs=mysql_fetch_array($_pagi_result)){
            echo 
"
            <tr>
                <td class=\"tdrow1\" align=\"center\"><input type=\"checkbox\" name=\"box\" /></td>
                <td class=\"tdrow1\">"
.$rs['modelo']."</td>
                <td class=\"tdrow1\" align=\"center\">"
.$rs['categoria']."</td>
                <td class=\"tdrow1\" align=\"center\">"
.$rs['precio']."</td>
                <td class=\"tdrow1\" align=\"center\">"
.$rs['fecha']."</td>
                <td align=\"center\">
                <table>
                <tr>
                    <td width=\"40\" align=\"center\">
                    <a onclick=\"willSubmit=confirm('¿Esta seguro de eliminar este registro?'); return willSubmit;\"
                    href=\"eliminar.php?id="
.$rs['id']."\">
                    <img src=\"IMG_20140107_231001_0.jpg\" height=\"20\" width=\"20\" /></a>
                    </td>
                    <td width=\"40\" align=\"center\">
                    <a href=\"editar.php\"><img src=\"IMG_20140107_231001_0.jpg\" height=\"20\" width=\"20\" /></a>
                    </td>
                </tr>
                </table>
                </td>
            </tr>
                 "
;
                }
            }
            
?>
  #2 (permalink)  
Antiguo 16/04/2014, 15:54
Avatar de valenti_92  
Fecha de Ingreso: enero-2010
Ubicación: Manresa
Mensajes: 126
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: eliminar registro mediante checkbox

¿Puedes explicarte mejor? ¿Que es lo que no te funciona? Si hay algún fallo en el js deberías poner el código.
__________________
Soy el desarrollador otaku, especializado en entornos web.
Mi canal en Youtube
@VGRDominik
  #3 (permalink)  
Antiguo 16/04/2014, 16:59
 
Fecha de Ingreso: marzo-2014
Mensajes: 19
Antigüedad: 10 años, 1 mes
Puntos: 1
Respuesta: eliminar registro mediante checkbox

Cita:
Iniciado por valenti_92 Ver Mensaje
¿Puedes explicarte mejor? ¿Que es lo que no te funciona? Si hay algún fallo en el js deberías poner el código.
disculpa, como puedo eliminar registro seleccionando checbox y darle click en ELIMINAR(que es un Submit)
  #4 (permalink)  
Antiguo 16/04/2014, 18:14
 
Fecha de Ingreso: abril-2014
Mensajes: 9
Antigüedad: 10 años
Puntos: 0
Respuesta: eliminar registro mediante checkbox

veo que está enviando la variable de ID a otro PHP

href=\"eliminar.php?id=".$rs['id']."\">

Entonces en eliminar.php debe recuperar esa variable usando un


luego en ese PHP utilizar un $_GET['id']

Sino detalla más el problema
  #5 (permalink)  
Antiguo 17/04/2014, 07:25
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: eliminar registro mediante checkbox

theoneal,
Debes tratar los checkbox como un array, te dejo un ejemplo.

Pagina que muestra los elementos a borrar:
Código HTML:
Ver original
  1. <input type='checkbox' name='check[]' id='check[]' value='$id_elementos' />

Pagina que elimina los elementos:
Código PHP:
Ver original
  1. $elementos = implode(",", $_POST['check']);
  2. $mysqli->query ("DELETE FROM tb_personalidades WHERE id IN ($elementos)");
  #6 (permalink)  
Antiguo 17/04/2014, 16:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: eliminar registro mediante checkbox

Cita:
Iniciado por alexisverano Ver Mensaje
Pagina que elimina los elementos:
Código PHP:
Ver original
  1. $elementos = implode(",", $_POST['check']);
  2. $mysqli->query ("DELETE FROM tb_personalidades WHERE id IN ($elementos)");
Y para evitar ataques XSS y de SQL Injection:

Código PHP:
Ver original
  1. if (substr(PHP_VERSION, 0, 3) >= 5.3){ //Si tu versión de PHP es mayor o igual a la 5.3
  2.     array_walk($_POST['check'], function($a) use ($mysqli){
  3.         return $mysqli->real_escape_string($a);
  4.     }); //SQL Injection
  5. }
  6. else{ //Si tu versión de PHP es menor a la 5.3
  7.     function escape($a){
  8.         global $mysqli;
  9.         return $mysqli->real_escape_string($a);
  10.     }
  11.     array_walk($_POST['check'], "escape"); //SQL Injection
  12. }
  13.  
  14. $check = array_map("strip_tags", $_POST['check']); //XSS
  15. $elementos = implode(",", $check);
  16. $mysqli->query ("DELETE FROM tb_personalidades WHERE id IN ($elementos)");

Como se está interactuando con la BD, es necesario hacerlo así por cuestiones de seguridad.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 17/04/2014 a las 16:49

Etiquetas: checkbox, formulario, mediante, registro, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.