Foros del Web » Programando para Internet » PHP »

Insertar con un checkbox

Estas en el tema de Insertar con un checkbox en el foro de PHP en Foros del Web. Hola a todos; He creado una pagina donde envio mensajes a usuarios. He echo una consulta que me saca todos los usuarios y he colocado ...
  #1 (permalink)  
Antiguo 10/08/2010, 13:41
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Insertar con un checkbox

Hola a todos;
He creado una pagina donde envio mensajes a usuarios.
He echo una consulta que me saca todos los usuarios y he colocado un checkbox a cada uno con su ID.
Ahora quiero enviar un mensaje solo a los usuarios que tengan marcado el checkbox, pero ahi es donde me pierdo.
Si solo marco 1, me lo envia bien, pero el problema esta cuando intento enviar a mas de 1.
alguien me puede echar una mano?.
Un saludo
  #2 (permalink)  
Antiguo 10/08/2010, 13:53
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Insertar con un checkbox

como tienes los check como declarados como arreglo ej <input type='checkbox' name='name[]'>?? los recibes con un foreach?? que recorra el array del check que allas seleccionado?? muestra tu codigo xq adivinando no se da una buena respuesta
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 10/08/2010, 13:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Insertar con un checkbox

hola
bueno, pregunto algo, los checkbox los usas individuales o como un array??
tal vez alguno de estos aportes te sirvan
uno
otro
otro mas
y otro

prueba y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 10/08/2010, 14:24
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Insertar con un checkbox

OS pongo como tengo colocado los checkbox
Esta es la consulta
Código PHP:
mysql_select_db($database_deume$deume);
$query_emplea "SELECT * FROM empleados ORDER BY empleado ASC";
$emplea mysql_query($query_emplea$deume) or die(mysql_error());
$row_emplea mysql_fetch_assoc($emplea);
$totalRows_emplea mysql_num_rows($emplea); 
Aqui es donde no se que hacer

Código PHP:
<label>
                <?php do { $ele=$row_emplea['id_empleados']; $elempleado=$row_emplea['empleado'];
    
?>
                  <input type="checkbox" name="<?php echo $elempleado?>" id="<?php echo $elempleado?>" />
                  <?php echo $elempleado?> &nbsp;<?php echo $ele?> 
                  <?php } while ($row_emplea mysql_fetch_assoc($emplea)); ?>
              </label>
Y aqui es donde esta el insert, y donde no se como hacer para que me inserte solo los seleccionados

Código PHP:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertarmsj")) {
  
$insertSQL sprintf("INSERT INTO emails (asunto, cuerpo, de, para) VALUES (%s, %s, %s, %s)",
                       
GetSQLValueString($_POST['res'], "text"),
                       
GetSQLValueString($_POST['cuerpo'], "text"),
                       
GetSQLValueString($_POST['$elempleado'], "text"),
                       
GetSQLValueString($_POST['para'], "text")); 
  #5 (permalink)  
Antiguo 10/08/2010, 14:36
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Insertar con un checkbox

y el value?? yo te aconcejo que coloques el name como arreglo es decir
Código PHP:
Ver original
  1. <input type="checkbox" name="usuario[]" value="<?php echo $elempleado; ?>">
ya que el value es lo que te va a insertar en la db luego cuando lo recibas lo recibes con un foreach asi
Código PHP:
Ver original
  1. foreac($_POST['usuario'] as $ke => $valor){
  2.     echo "el usuario ".$key." es ".$valor;
  3. }
para que entiendas como se usa el foreach luego lo adaptas a tu codigo de insercion suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 10/08/2010, 15:28
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Insertar con un checkbox

Bueno, me inserta solo un dato, seguramente por que no esta bien colocado.
A ver si puedes ayudarme un poco mas

Aqui coloco el codigo tal como lo tengo.

Código PHP:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertarmsj")) {
    
foreac($_POST['usuario'] as $ke => $valor)
              
  $insertSQL = sprintf("INSERT INTO emails (asunto, cuerpo, de, para) VALUES (%s, %s, %s, %s)",
                       GetSQLValueString($_POST['res'], "text"),
                       GetSQLValueString($_POST['cuerpo'], "text"),
                       GetSQLValueString($elusuario, "text"),
                       GetSQLValueString($valor, "text"));
  
  


  mysql_select_db($database_deume, $deume);
  $Result1 = mysql_query($insertSQL, $deume) or die(mysql_error());

  $insertGoTo = "ver_correo.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}


<label>
                <?php do { $ele=$row_emplea['id_empleados']; 
                
$elempleado=$row_emplea['empleado']; 
                
?>
                  <input type="checkbox" name="usuario[]" value="<?php echo $elempleado?>" />
                  <?php echo $elempleado?> &nbsp;<?php echo $ele?> 
                  <?php } while ($row_emplea mysql_fetch_assoc($emplea)); ?>
              </label>
Pero solo me inserta un solo dato
  #7 (permalink)  
Antiguo 10/08/2010, 15:34
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Insertar con un checkbox

donde recibes el valor del check??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 10/08/2010, 15:41
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Insertar con un checkbox

hola


Cita:
foreac($_POST['usuario'] as $ke => $valor)
creo que tienes 2 errores

0. es foreach no foreac (te cayo agua carlos_belisario)
1. falta la llave de apertura del foreach

prueba y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 10/08/2010, 15:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Insertar con un checkbox

No entiendo bien esta formula de foreach

Creo que
Código PHP:
foreach($_POST['usuario'] as $ke => $valor 
coje el valor del checkbox, de echo si solo marco 1 me lo envia donde esta marcado el checkbox, pero cuando marco mas de 1, me inserta el ultimo marcado.
  #10 (permalink)  
Antiguo 10/08/2010, 15:53
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Insertar con un checkbox

ya agregaste la llave inicial del foreach?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 10/08/2010, 15:54
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Insertar con un checkbox

jaja se me paso la h jajaj bueno como siempre digo soy un exerto cometiendo este tipo de errores pero la llave si las abri
Cita:
1.
foreac($_POST['usuario'] as $ke => $valor){
2.
echo "el usuario ".$key." es ".$valor;
3.
}
y bueno foreach es el bucle mas utilizado con los arreglos es sencillo ah tambien me comi la y en la variable key y puse ke pero bue espero que te sirva de ejemplo suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 10/08/2010, 15:59
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Insertar con un checkbox

Cita:
Iniciado por carlos_belisario Ver Mensaje
jaja se me paso la h jajaj bueno como siempre digo soy un exerto cometiendo este tipo de errores pero la llave si las abri
y bueno foreach es el bucle mas utilizado con los arreglos es sencillo ah tambien me comi la y en la variable key y puse ke pero bue espero que te sirva de ejemplo suerte
jajajaja, teclado engañoso el que tienes!! hazle mantenimiento,
te funcionan pero te las comes a veces según veo,
por ahora, esperemos que ahora si le funcione a visona
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #13 (permalink)  
Antiguo 10/08/2010, 16:02
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Insertar con un checkbox

eso es error de usuario no de teclado jaja y si esperemos que le alla quedado claro sino aki hay un tutorial de como usar el foreach esta explicado con manzanas suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #14 (permalink)  
Antiguo 10/08/2010, 16:03
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Insertar con un checkbox

Sigo sin entender, he colocado bien todo, me percate que faltaba la "h" y el cierre lo quite, ya que no me hace falta, pero sigo igual. SOlo me inserta un dato.

Puede ser que al estar fuera de
Código PHP:
<label>
                <?php do { $ele=$row_emplea['id_empleados']; 
                
$elempleado=$row_emplea['empleado']; 
                
    
                
?>
                  <input type="checkbox" name="usuario[]" value="<?php echo $elempleado?>" />
                  <?php echo $elempleado?> &nbsp;<?php echo $ele?> 
                  <?php } while ($row_emplea mysql_fetch_assoc($emplea)); ?>
              </label>
que es donde me repiten los datos?, ya que no entiendo por que solo me inserta un registro en vez de los 5 que marque.
  #15 (permalink)  
Antiguo 10/08/2010, 16:05
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Insertar con un checkbox

bueno todavia no me has mostrado donde recibes los datos del check??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #16 (permalink)  
Antiguo 10/08/2010, 16:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Insertar con un checkbox

Código PHP:
<label>
                <?php do { $ele=$row_emplea['id_empleados']; 
                
$elempleado=$row_emplea['empleado']; 
                
    
                
?>
                  <input type="checkbox" name="usuario[]" value="<?php echo $elempleado?>" />
                  <?php echo $elempleado?> &nbsp;<?php echo $ele?> 
                  <?php } while ($row_emplea mysql_fetch_assoc($emplea)); ?>
              </label>
Aqui se reciben los datos del check la variable $elempleado me saca todos los empleados
  #17 (permalink)  
Antiguo 10/08/2010, 16:09
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Insertar con un checkbox

visona, quieres decir que quitaste el cierre del foreach??
pues es que si el foreach no tiene cabeza ni pie (refiriendome a las llaves,
pues simplemente el no se tomará la molestia de poner las llaves en el
momento de ejecución (aunque esto ayudaría a quienes no les gustan las llaves)
así que te sugiero que trates de identar tu código para que sepas las llaves de apertura y cierre que tienes en cada estructura (if, foreach, etc) pues una llave
que falte por más que no de algún error, pues puede evitar que el programa
funcione como se quiere
y pues me falta un paréntesis, no???)
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #18 (permalink)  
Antiguo 10/08/2010, 16:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Insertar con un checkbox

Pues tenias toda la razon, he colocado las llaves y funciona, si es que el que no sabe es como el que no sabe leer.
Muchas gracias por vuestras paciencia

Etiquetas: checkbox
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:23.