Foros del Web » Programando para Internet » PHP »

Crear checkox dinamicamente

Estas en el tema de Crear checkox dinamicamente en el foro de PHP en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php     include ( "../admin/conexion.php" ) ;         $con = conectar ( ) ;   ...

  #31 (permalink)  
Antiguo 02/05/2012, 11:49
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear checkox dinamicamente

Código PHP:
Ver original
  1. <?php
  2.     include("../admin/conexion.php");
  3.    
  4.     $con=conectar();
  5.    
  6.     foreach($_POST['actualizar'] as $registro)
  7.     {
  8.     $datos=explode(",", $registro);
  9.     $update="UPDATE reporte_horas SET status='".$datos[1]."' where codigo_reporte_horas'".$datos[0]"'";
  10.     $resultado=mysql_query($update, $con);
  11.     }
  12.     if($resultado)
  13.     {
  14. ?>
  15.     <script type="text/javascript">alert("Las horas fueron validadas correctamente");</script>
  16.     <script type="text/javascript">window.location="validar_horas.php";</script>
  17. <?php
  18.     }
  19. ?>

Aqui esta el archivo que procesa el formulario... La parte del if deberia quitarla porque me esta dando error... Aun quitandole eso, muestra los mensajes mencionados arriba
  #32 (permalink)  
Antiguo 02/05/2012, 11:59
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Crear checkox dinamicamente

Es obvio que no te va a enviar datos si escribiste la tabla con los checkbox por fuera del tag <form></form>

Dentro del tag form debes escribir todo lo que queres que envie al archivo determinado en el action del mismo.

entonces, al estar por fuera, cuando quiere recorrer $_POST['actualizar'] no existe. Entonces escribi toda la tabla dentro del form, eso en primer lugar, despues sabiendo lo que te devuelve la consulta que crea los checkbox, traes todos los registros que tengan status = 0, quiere decir que los que vos marques los vas a querer en status 1 entonces en el html de los checkbox lo escribis asi:

Código PHP:
Ver original
  1. echo "<td><input type='checkbox' name='actualizar[]' value='" . $var['0'] ."' /></td>";

y ahora el update lo haces asi:

Código PHP:
Ver original
  1. foreach($_POST['actualizar'] as $idRegistro) {
  2.     // $idRegistro contiene los datos de los value de cada checkbox, entonces:
  3.     $update="UPDATE reporte_horas SET status='1' where codigo_reporte_horas = '" . $idRegistro . "'";
  4.     $resultado=mysql_query($update, $con);
  5. }

Previo a esto asegurate de meter la tabla dentro de <form></form> y no solamente los input de submit entendes?
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #33 (permalink)  
Antiguo 02/05/2012, 12:34
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear checkox dinamicamente

Cita:
Iniciado por linuxzero Ver Mensaje
Es obvio que no te va a enviar datos si escribiste la tabla con los checkbox por fuera del tag <form></form>

Dentro del tag form debes escribir todo lo que queres que envie al archivo determinado en el action del mismo.

entonces, al estar por fuera, cuando quiere recorrer $_POST['actualizar'] no existe. Entonces escribi toda la tabla dentro del form, eso en primer lugar, despues sabiendo lo que te devuelve la consulta que crea los checkbox, traes todos los registros que tengan status = 0, quiere decir que los que vos marques los vas a querer en status 1 entonces en el html de los checkbox lo escribis asi:

Código PHP:
Ver original
  1. echo "<td><input type='checkbox' name='actualizar[]' value='" . $var['0'] ."' /></td>";

y ahora el update lo haces asi:

Código PHP:
Ver original
  1. foreach($_POST['actualizar'] as $idRegistro) {
  2.     // $idRegistro contiene los datos de los value de cada checkbox, entonces:
  3.     $update="UPDATE reporte_horas SET status='1' where codigo_reporte_horas = '" . $idRegistro . "'";
  4.     $resultado=mysql_query($update, $con);
  5. }

Previo a esto asegurate de meter la tabla dentro de <form></form> y no solamente los input de submit entendes?
Ya hice las modificaciones, pero tengo una duda con respecto a tus correcciones... Si te fijas la variable var se te esta trayendo los datos de la base de datos, por lo que var['0'] seria el valor del campo de la base de datos en el indice 0... No se si me entiendes... Muchas gracias
  #34 (permalink)  
Antiguo 02/05/2012, 12:38
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Crear checkox dinamicamente

pero tu $var[0] en cada iteracion pertenece al campo codigo_reporte_horas que es lo que realmente necesitas para el where por eso es necesario que le pases al value del checkbox el $var[0] para saber a que id le tenes que poner el status en 1
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #35 (permalink)  
Antiguo 02/05/2012, 12:43
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear checkox dinamicamente

Cita:
Iniciado por linuxzero Ver Mensaje
pero tu $var[0] en cada iteracion pertenece al campo codigo_reporte_horas que es lo que realmente necesitas para el where por eso es necesario que le pases al value del checkbox el $var[0] para saber a que id le tenes que poner el status en 1
No la habia visto hermano... Muchisimas gracias... Esta funcionando a la perfeccion... Muchas gracias por tu tiempo
  #36 (permalink)  
Antiguo 02/05/2012, 12:44
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Crear checkox dinamicamente

Cita:
Iniciado por dragonfire256 Ver Mensaje
No la habia visto hermano... Muchisimas gracias... Esta funcionando a la perfeccion... Muchas gracias por tu tiempo
De nada campeon
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #37 (permalink)  
Antiguo 18/06/2012, 17:11
 
Fecha de Ingreso: junio-2012
Ubicación: En Chile :D
Mensajes: 44
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Crear checkox dinamicamente

voy a levantar este tema, a ver si me pueden guiar un poco mas...

Este es mi codigo, este crea una tabla dinamica, donde para cada fila entrega un checkbox.

Código PHP:
<form id="form1" name="form1" method="POST" action="<?php echo $editFormAction?>">
  <label for="gus"></label>
  <table border="1">
    <tr>
      <td>&nbsp;</td>
      <td>gusto</td>
    </tr>
    <?php 
    $i 
0;
    do { 
    
?>
      <?php echo "<tr><td><input name='gus_".$i."' type='checkbox' id='gus_".$i."' value='".$row_Recordset1['gusto']."'/>
            <label for='obs_"
.$i."'></label></td>
            <td>"
.$row_Recordset1['gusto']."</td>
            </tr>"
;
    
$i++; ?>
      <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1)); ?>
  </table>
  <p>
    <input type="submit" name="enviar" id="enviar" value="Enviar" />
  </p>
  <input type="hidden" name="MM_insert" value="form1" />
</form>
mi problema es que no se como ejecutar el insert para que me guarde los "gus_$i" seleccionados en un solo campo de la base de datos...

Habia creado un nuevo post, pero no tuvo mucho exito, asi que espero que los que hayan escrito aqui, puedan aportar al tema...

garcias
  #38 (permalink)  
Antiguo 19/06/2012, 05:03
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Crear checkox dinamicamente

en el name del input escribilo como un array:

Código PHP:
Ver original
  1. <input name='gus[]' type='checkbox' id='gus_".$i."' value='".$row_Recordset1['gusto']."'/>

entnces en el lado del servidor cuando hagas el submit y quieras obtener los datos lo trabajas como un array:

Código PHP:
Ver original
  1. foreach($_POST['gus'] as $valor) {
  2.     echo $valor; //Este va a tener todos los value de los checkbox seleccionados
  3. }
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #39 (permalink)  
Antiguo 19/06/2012, 09:18
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear checkox dinamicamente

Hey marce, te indique este post que abri para que te guiaras y lo adaptaras a tus necesidades, no para que volvieras a postear tu problema... Aparte, que se ve de mal gusto hacerlo entre esta comunidad... Inclusive no te responden cuando lo haces... No quiero que lo tomes a mal... Espero tengas suerte y resuelvas tu problema... Saludos

P.D. Tuviste mucha suerte de que linuxzero siempre tenga disposicion a ayudar, porque cualquier otro te lo hubiera reclamado... Tomalo como un consejo

Etiquetas: dinamicamente, registro, tabla
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 10:59.