Foros del Web » Programando para Internet » PHP »

Problema al recibir datos

Estas en el tema de Problema al recibir datos en el foro de PHP en Foros del Web. Buenas foro Estoy haciendo un sistema de acceso de usuarios a los cuales les tengo que asignar un permiso dependiendo del menu al que entren ...
  #1 (permalink)  
Antiguo 22/03/2013, 08:54
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Pregunta Problema al recibir datos

Buenas foro

Estoy haciendo un sistema de acceso de usuarios a los cuales les tengo que asignar un permiso dependiendo del menu al que entren pero me he atorado al tratar de recibir los datos yaque me guarda el mismo valor par todos aunque yo aun no lo asigne.

este es mi codigo:

Código PHP:
Ver original
  1. <?php
  2.                                 $menus=$util->menu();
  3.                                 $permisos = array('Lectura','Escritura','Reportes');
  4.                                 ?>
  5.                                     <table class="tabla-gral">
  6.                                         <thead>
  7.                                         <tr>
  8.                                             <th>Modulos</th>
  9.                                             <th>Acceso</th>
  10.                                             <?php foreach($permisos as $permiso): ?>
  11.                                             <th><?php echo $permiso; ?></th>
  12.                                             <?php endforeach; ?>
  13.                                         </tr>
  14.                                         </thead>
  15.                                         <tbody>
  16.                                             <tr><td colspan="11">&nbsp;</td></tr>
  17.                                             <?php
  18.                                             for($i=0;$i<count($modulos);$i++):
  19.                                             ?>
  20.                                             <tr align="center">
  21.                                                 <td><?php echo $modulos[$i]->etiqueta; ?></td>
  22.                                                 <td><input type="checkbox" name="<?php echo $modulos[$i]->nombreImagen; ?>" value="<?php echo $modulos[$i]->menuID; ?>" /></td>
  23.                                                 <td><input type="checkbox" name="lectura" value="1" /></td>
  24.                                                 <td><input type="checkbox" name="escritura" value="1" /></td>
  25.                                                 <td><input type="checkbox" name="reporte" value="1" /></td>
  26.                                             </tr>
  27.                                             <?php
  28.                                             endfor;
  29.                                             ?>
  30.                                         </tbody>
  31.                                     </table>

y asi los recibo:

Código PHP:
Ver original
  1. $dataKeys = array('pedidos',
  2.                   'arte',
  3.                   'produccion',
  4.                   'almacen',
  5.                   'facturacion',
  6.                   'envios',
  7.                   'clientes',
  8.                   'proveedores',
  9.                   'usuarios',
  10.                   'reportes');
  11.  
  12. for($p=0;$p<count($dataKeys);$p++):
  13.     if(isset($_REQUEST[$dataKeys[$p]])):
  14.         $user->setAcceso($_REQUEST[$dataKeys[$p]]);
  15.         if(isset($_REQUEST['lectura'])): $user->setLectura($_REQUEST['lectura']); else: $user->setLectura(0); endif;
  16.         if(isset($_REQUEST['escritura'])): $user->setEscritura($_REQUEST['escritura']); else: $user->setEscritura(0); endif;
  17.         if(isset($_REQUEST['reporte'])): $user->setReportes($_REQUEST['reporte']); else: $user->setReportes(0); endif;
  18.         $user->setIdUsuario($_GET['id']);
  19.        
  20.         echo "Usuario: ".$_GET['id']."<br />";
  21.         echo $dataKeys[$p].": <br />";
  22.         echo "Lectura-".$user->getLectura()."<br />";
  23.         echo "Escritura-".$user->getEscritura()."<br />";
  24.         echo "Reportes-".$user->getReportes()."<br /><br /><br />";
  25.        
  26.         //$user->registraPermiso();
  27.     endif;
  28.  
  29. endfor;

Pero si en el primer modulo asigno todos los permisos al recorrer las demas posiciones me guarda el mismo valor para todos los permisos.

Espero me puedan apoyar con sus comentarios. De antemano muchas gracias.
__________________
Lo imposible solo cuesta un poco mas
  #2 (permalink)  
Antiguo 22/03/2013, 10:44
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Problema al recibir datos

Ya he podido diferenciar los datos que se envian agregandoles el valor del contador.
Código PHP:
Ver original
  1. <td><input type="checkbox" name="lectura<?php echo $i; ?>" value="1" /></td>
  2.                                                 <td><input type="checkbox" name="escritura<?php echo $i; ?>" value="1" /></td>
  3.                                                 <td><input type="checkbox" name="reporte<?php echo $i; ?>" value="1" /></td>

Pero no se como recibir los datos en un for para poder recorrer.

Código PHP:
Ver original
  1. for($j=1;$j<=count($datakeys);$j++):
  2.     echo "posicion:".$j."<br />";
  3.     echo "valor: ".$_REQUEST['lectura']."<br />";  
  4. endfor;

Que en el for en donde dice lectura agregue el valor del contador $i
__________________
Lo imposible solo cuesta un poco mas
  #3 (permalink)  
Antiguo 22/03/2013, 10:46
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema al recibir datos

asignales el mismo nombre a todos los checkbox
  #4 (permalink)  
Antiguo 22/03/2013, 10:47
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema al recibir datos

http://www.forosdelweb.com/f18/recup...ox-php-981397/
  #5 (permalink)  
Antiguo 22/03/2013, 11:33
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Problema al recibir datos

Si asignaba el mismo nombre a los checkbox para hacerlos un array no me funcionaba puesto que cada modulo tiene sus permisos y de la forma en array no recibía los datos como los necesitaba.

Así que aquí les muestro mi solución.

Código PHP:
Ver original
  1. $datakeys = array();
  2. $lectura = array();
  3. $escritura = array();
  4. $reporte = array();
  5.  
  6. for($i=1;$i<=count($modulos);$i++):
  7.     $datakeys[$i] = array("lectura"=>0,"escritura"=>0,"reporte"=>0);   
  8.     $lectura[$i] = "lectura".$i;
  9.     $escritura[$i] = "escritura".$i;
  10.     $reporte[$i] = "reporte".$i;
  11. endfor;
  12.  
  13. for($j=1;$j<=count($datakeys);$j++):
  14.     if(isset($_REQUEST[$lectura[$j]])): $user->setLectura(1); else: $user->setLectura(0); endif;
  15.     if(isset($_REQUEST[$escritura[$j]])): $user->setEscritura(1); else: $user->setEscritura(0); endif;
  16.     if(isset($_REQUEST[$reporte[$j]])): $user->setReportes(1); else: $user->setReportes(0); endif;
  17.         echo "posicion:".$j."<br />";
  18.         echo "Lectura: ".$user->getLectura()."<br />";     
  19.         echo "Escritura: ".$user->getEscritura()."<br />"; 
  20.         echo "Reportes: ".$user->getReportes()."<br /><br /><br />";       
  21. endfor;

Tal vez no es la mejor solución, así que si me pueden ayudar a mejorar el código se los agradecería.

Gracias a todos por sus comentarios.

Saludos
__________________
Lo imposible solo cuesta un poco mas

Etiquetas: recibir, tabla, usuarios
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 20:06.