Foros del Web » Programando para Internet » PHP »

Trabajando con checkbox en php

Estas en el tema de Trabajando con checkbox en php en el foro de PHP en Foros del Web. Hola necesito crear un formulario muy igual al de hotmail. que tiene lo siguiente; Muestra los registros de los mails recibidos, te da opcion de ...
  #1 (permalink)  
Antiguo 01/08/2008, 11:54
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Trabajando con checkbox en php

Hola necesito crear un formulario muy igual al de hotmail.
que tiene lo siguiente;

Muestra los registros de los mails recibidos, te da opcion de eliminar el registro desde esa misma pagina seleccionando el checkbox. das eliminar y lo borra

como puedo lograr esto.

ya puedo ver los campos de mi base de datos en la pagina, me muestra cada registro con su checkbox para eliminarse, solo que no tengo idea de como tengo que hacerle para borrarlo o eliminarlo.

gracias..
  #2 (permalink)  
Antiguo 01/08/2008, 12:05
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Trabajando con checkbox en php

Hola

Lo que puedes hacer es mandar los checkboxes como un arreglo de ID. Por ejemplo, tu html seria:

<input type="checkbox" name="id[]" value="1" /> 1
<input type="checkbox" name="id[]" value="2" /> 2
<input type="checkbox" name="id[]" value="3" /> 3

Ahora supongamos que marcas los 3, entonces en la página donde recibes los datos tendras un arreglo equivalente a esto:

$id = array(1, 2, 3) // si te fijas son los valores que enviaste.

Ahora, para borrarlos, harás uso de la sentencia IN de mysql, que funciona asi:
DELETE FROM tabla WHERE ID IN ('1', '5', '7')

que borraria las filas cuyo capo ID sea 1, 5 y 7. Para formar esta consulta basada en tu arreglo recibido de los checkbox, podrias hacer algo como:

$ids = implode("','", $_POST['id']);
$sql = "DELETE FROM tabla WHERE ID IN ('$ids')";

Ejecutas $sql y listo, esos registros deben haber sido borrados de la DB.

Saludos!
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 01/08/2008, 12:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Trabajando con checkbox en php

Si bien la propuesta de oso96_2000 es muy acertada, de las FAQ:
93. Como gestionar acciones a los registros seleccionados con checkbox (estilo web-mails tipo Hotmail).

Hasta en la descripción coincide a lo que buscas. Están para ser consultadas, por favor.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 01/08/2008, 12:08
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Sonrisa Respuesta: Trabajando con checkbox en php

Cita:
Iniciado por oso96_2000 Ver Mensaje
Hola

Lo que puedes hacer es mandar los checkboxes como un arreglo de ID. Por ejemplo, tu html seria:

<input type="checkbox" name="id[]" value="1" /> 1
<input type="checkbox" name="id[]" value="2" /> 2
<input type="checkbox" name="id[]" value="3" /> 3

Ahora supongamos que marcas los 3, entonces en la página donde recibes los datos tendras un arreglo equivalente a esto:

$id = array(1, 2, 3) // si te fijas son los valores que enviaste.

Ahora, para borrarlos, harás uso de la sentencia IN de mysql, que funciona asi:
DELETE FROM tabla WHERE ID IN ('1', '5', '7')

que borraria las filas cuyo capo ID sea 1, 5 y 7. Para formar esta consulta basada en tu arreglo recibido de los checkbox, podrias hacer algo como:

$ids = implode("','", $_POST['id']);
$sql = "DELETE FROM tabla WHERE ID IN ('$ids')";

Ejecutas $sql y listo, esos registros deben haber sido borrados de la DB.

Saludos!
Oye actualmente tengo una tabla creada donde me muestra un mismo checkbox dependiendo los registros que esten disponibles, como le debo llamar a este checkbox en el name.
Id[] como arreglo me funciona?


pudieras poner tu ejemplo con codigo completo, ya que los ejemplos de los FAQS no estan muy claros , me parece tu ejemplo claro solo si pudieras completarle? gracias

Última edición por RicardoU; 01/08/2008 a las 19:41
  #5 (permalink)  
Antiguo 01/08/2008, 12:13
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Trabajando con checkbox en php

El nombre da igual mientras pongas el [] al final, para indicar que los datos serán tratados como un arreglo.

Habia olvidado lo de las FAQs, cosa de no entrar hace tiempo :P Te remito al post de Cluster, que esta mucho mejor explicado que mi respuesta :)

http://www.forosdelweb.com/f18/faqs-...tml#post518710
__________________
Sin Ideas
  #6 (permalink)  
Antiguo 01/08/2008, 12:16
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Sonrisa Respuesta: Trabajando con checkbox en php

Cita:
Iniciado por oso96_2000 Ver Mensaje
El nombre da igual mientras pongas el [] al final, para indicar que los datos serán tratados como un arreglo.

Habia olvidado lo de las FAQs, cosa de no entrar hace tiempo :P Te remito al post de Cluster, que esta mucho mejor explicado que mi respuesta :)

http://www.forosdelweb.com/f18/faqs-...tml#post518710


Muchas gracias.-..... me lo dejaste claro , gracias por tu ayuda.
  #7 (permalink)  
Antiguo 01/08/2008, 17:04
 
Fecha de Ingreso: mayo-2005
Mensajes: 7
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Trabajando con checkbox en php

Hola, cómo están, espero que bien, tengo una duda del cual les agradeceria mucho: tengo este detalle tengo un arreglo del cual se selecciona el sexo de una persona:
<?php

function combo_matriz($matriz, $name, $default,$valori) {
$result="<select name=\"$name\" class=\"datos\" $status>\n";
if ($valori > 0){ $result.="<option value=''>--></option>";}
for ($i=$valori;$i<=count($matriz); $i++){
$key = $i;
if ($default == $key) {$selected="selected";} else {$selected="";}
$result.="<option value='$key' $selected>$matriz[$i]</option>\n";
}
$result.="</select>\n";
return $result;

}

$matriz = array(0=>"SELECIONA...",1=>"MUJER",2=>"HOMBRE");
echo combo_matriz($matriz, "sexo", $datos["sexo"],0);

pero tambíén tengo unas opciones de checkbox, del cual quiero deshabilitar cuando seleccionen el sexo hombre.

<th scope="col">E:</th>
<th scope="col">
<input name="e" type="checkbox" <?php if ($comp["e"] > 0) echo "checked"; ?> /></th>


les agradeciria como puedo tamar ese valor y hacer que el mismo check se inhabilite.

gracias.

Última edición por Lobo_de_galaad; 01/08/2008 a las 17:15
  #8 (permalink)  
Antiguo 01/08/2008, 20:45
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Trabajando con checkbox en php

Hola alguien que me pueda pasar un ejemplo completo , eliminando los registros de mi tabla con checkbox.

por que no me queda claro he probado los ejemplos que me han pasado y no me funciona.

gracias...
  #9 (permalink)  
Antiguo 01/08/2008, 22:40
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Respuesta: Trabajando con checkbox en php

yo uso algo simple pero me ayuda mucho, espero te sirva y con una manita de los expertos del foro puedes mejorar:

Código PHP:
<script language="JavaScript">
function checkAll() {
    var nodoCheck = document.getElementsByTagName("input");
    var varCheck = document.getElementById("checkall").checked;
    for (i=0; i<nodoCheck.length; i++){
        if (nodoCheck[i].type == "checkbox" && nodoCheck[i].name != "checkall" && nodoCheck[i].disabled == false) {
            nodoCheck[i].checked = varCheck;
        }
    }
}
</script>

      <?
include("conexion.php");
$SQLborrar "DELETE FROM correos WHERE id IN(".implode(', '$HTTP_POST_VARS['id']).")";
mysql_query($SQLborrar);
?>
<hr>
<h4>Borrar</h4>
<hr>

 <form method="Post" name="forma">

<ul>
<li style="margin-bottom:10px;"><span style="padding-right:10px; border-bottom: solid 2px #808080; background:#ACEAD9"><input name="checkall" type="checkbox" id="checkall" value="checkall" onclick="checkAll();" /> Marcar todos</span></li>
      <?
include("conexion.php");
$b_listar mysql_query("SELECT id, email FROM correos ORDER BY id asc Limit 0,20"); // listar
while($r_listar mysql_fetch_row($b_listar))
{
echo 
"<li><input type=\"checkbox\" name=\"id[]\" value=\"$r_listar[0]\"> $r_listar[0] $r_listar[1]</li>
"
;
}
mysql_free_result($b_listar);
mysql_close($conn);
?>
</ul>
    <input type="hidden" type="radio" name="acc" value="m" CHECKED>
    <input Style="color:#00008A; font-weight:bold" class="negro" value=" < Borrar Email > " type="submit">
    
    </form>
  #10 (permalink)  
Antiguo 02/08/2008, 19:59
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Trabajando con checkbox en php

Hola oye mi carga del checkbox la muestro con codigo php segun los registros que se tengan en la base de datos que se tengas, como puedo relacionarlos para pasarlos al $_GET borrar?

gracias
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 00:55.