Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO formulario checkbox

Estas en el tema de formulario checkbox en el foro de PHP en Foros del Web. Hola a todos y gracias de antemano. Expongo Se trata de un script que genera un formulario con casillas de verificacion(checkbox), para que el usuario ...
  #1 (permalink)  
Antiguo 18/10/2010, 16:58
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
formulario checkbox

Hola a todos y gracias de antemano.
Expongo
Se trata de un script que genera un formulario con casillas de verificacion(checkbox), para que el usuario selecione la fila a borrar en la bd
Código PHP:
Ver original
  1. //--------------------------genero tabla------------------------
  2. echo '<FORM METHOD="POST" ACTION="del2.php?cod='.$cod.'">';
  3. echo '<br><br><table border="1">';
  4. while($row = mysql_fetch_array($sql)){
  5. echo '<tr><td><input name="'.$row ['id'].'" type="checkbox"></td><td>'.$row ['id'].'</td><td>'.$row ['plato'].'</td><td>'.$row['des'].'</td></tr>';
  6. };
  7. echo '</table>';
  8. echo '<input type="submit" value="borrar"></FORM>';
  9. //-------------------------------------------------------------------

asta aqui todo bien
el problema lo tengo en que no se como recoger exactamente el valor del checkbox en del2.php, pues no se de antemano el valos de $row ['id'].


estoy loco por sacar la forma de que se borren todos los datos marcados

Última edición por xerifandtomas; 18/10/2010 a las 17:06
  #2 (permalink)  
Antiguo 18/10/2010, 18:08
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 14 años, 5 meses
Puntos: 36
Respuesta: formulario checkbox

y has intentado poner:

Código PHP:
<input type="checkbox" name="<?php echo $row ['id'];?>" value="<?php echo $row ['id'];?>">
  #3 (permalink)  
Antiguo 18/10/2010, 18:13
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: formulario checkbox

pues el name no veo que sea necesario colocar el id sino en el valor como ya lo tienes los checkbox normalmente se manejan como arreglo ej
Código PHP:
Ver original
  1. <input type="checkbox" name="id[]" value="<?php echo $row ['id'];?>">
luego en la pagina que lo recibes si es para borrar haces lo siguiente
Código PHP:
Ver original
  1. foreach($_POST['id'] as $id=>$valor){
  2.    mysql_query("DELETE FROM tu_tabla WHERE id='$valor'") or die(mysql_error());
  3. }
saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 18/10/2010, 18:49
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: formulario checkbox

gracias carlos_belisario y ylellan

voy a probar haber que tal
  #5 (permalink)  
Antiguo 18/10/2010, 19:17
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: formulario checkbox

Cita:
Iniciado por carlos_belisario Ver Mensaje
pues el name no veo que sea necesario colocar el id sino en el valor como ya lo tienes los checkbox normalmente se manejan como arreglo ej
Código PHP:
Ver original
  1. <input type="checkbox" name="id[]" value="<?php echo $row ['id'];?>">
luego en la pagina que lo recibes si es para borrar haces lo siguiente
Código PHP:
Ver original
  1. foreach($_POST['id'] as $id=>$valor){
  2.    mysql_query("DELETE FROM tu_tabla WHERE id='$valor'") or die(mysql_error());
  3. }
saludos
muchas gracias, funciona perfeto.
no habia caido en generar el array name="id[]" y asignarle valores mediante value="<?php $row['id']; ?>"estaba cegado en asignar el valor a pasar como name=

Muchas gracias nuevamente

Etiquetas: checkbox, formulario
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 21:40.