Foros del Web » Programando para Internet » PHP »

Problemas Creando Checkboxes y agrupación desde Array

Estas en el tema de Problemas Creando Checkboxes y agrupación desde Array en el foro de PHP en Foros del Web. Hola amigos, estoy creando checkboxes a partir de un conjunto de arrays hasta ahí todo bien, el array es el siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 21/02/2010, 17:55
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Problemas Creando Checkboxes y agrupación desde Array

Hola amigos, estoy creando checkboxes a partir de un conjunto de arrays hasta ahí todo bien, el array es el siguiente:

Código PHP:
Ver original
  1. //listamos los permisos disponibles
  2. //array("categoria", "nombre del checkbox", "descripción");
  3.     $permisos = array(
  4.         array("Admin", "add_user", "Permitir Crear nuevos usuarios"),
  5.         array("Admin", "del_user", "Permitir borrar usuarios"),
  6.         array("Admin", "edit_user", "Permitir editar usuarios"),
  7.         array("Secciones", "add_section", "Permitir Crear nuevas secciones"),
  8.         array("Secciones", "del_section", "Permitir borrar secciones"),
  9.         array("Secciones", "edit_section", "Permitir editar secciones"),
  10.             );

El caso es que quiero agruparlo por categorias, algo así:

Categoria 1
checkbox1 - Descripción
checkbox2 - Descripción
checkbox3 - Descripción
Categoria 2
checkbox1 - Descripción
checkbox2 - Descripción
checkbox3 - Descripción

este es el code de como lo tengo:

Código PHP:
Ver original
  1. //listamos los permisos disponibles
  2.     $permisos = array(
  3.         array("Admin", "add_user", "Permitir Crear nuevos usuarios"),
  4.         array("Admin", "del_user", "Permitir borrar usuarios"),
  5.         array("Admin", "edit_user", "Permitir editar usuarios"),
  6.         array("Secciones", "add_section", "Permitir Crear nuevas secciones"),
  7.         array("Secciones", "del_section", "Permitir borrar secciones"),
  8.         array("Secciones", "edit_section", "Permitir editar secciones"),
  9.         );
  10.        
  11.     echo '<table class="tborder core_menu2" width="100%" border="0" cellspacing="0" cellpadding="0">
  12.  <tr class="catbg">
  13.    <td colspan="2" scope="col">Permisos para el grupo &quot;tal&quot;</td>
  14.  </tr>
  15.  <tr>
  16.    <td>&nbsp;</td>
  17.    <td>&nbsp;</td>
  18.  </tr>';
  19.   $i = 0;
  20.   //creamos los checkboxes
  21.   foreach ($permisos AS $check) {
  22.   $i++;
  23.   if ($check == $check[0]) {
  24.   echo '<tr style="background-color:silver; color:black; height:25px;">
  25.    <td colspan="2">', $check[0] ,'</td>
  26.  </tr>';
  27.   } else {
  28.   echo '<tr>
  29.    <td align="left" valign="top"><input type="checkbox" name="',$check[1],'" id="',$check[1],'" />',$check[2],' <br /></td>';
  30.    
  31.     if ($i == 4)   
  32.     echo '<td align="left" valign="top"><input type="checkbox" name="',$check[1],'" id="',$check[1],'" />',$check[2],' <br /></td>';
  33.     }  
  34.   } //foreach
  35.   echo '</tr>
  36. </table>';

el caso es que no me funciona :(
  #2 (permalink)  
Antiguo 21/02/2010, 18:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Lo que puedes hacer es crear una variable al final de foreach que guarde la información del check[0] y luego comparar al principio a ver si es diferente o igual.
Código PHP:
Ver original
  1. $variableAlFinalDelForeach = "";
  2. foreach($permisos as $check){
  3.   if($check[0] == $variableAlFinalDelForeach){
  4.     //codigo aqui
  5.   }else{
  6.     //codigo aqui
  7.   }
  8.   $variableAlFinalDelForeach = $check[0];
  9. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 21/02/2010, 18:20
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Hola abimaelrc, gracias por tu pronta respuesta, la cosa me queda así:

Código PHP:
Ver original
  1. //creamos los checkboxes
  2.   $variableAlFinalDelForeach = "";
  3.   foreach ($permisos AS $check) {
  4.   if ($check[0] == $variableAlFinalDelForeach) {
  5.   echo '<tr style="background-color:silver; color:black; height:25px;">
  6.    <td colspan="2">', $check[0] ,'</td>
  7.  </tr>';
  8.   } else {
  9.   echo '<tr>
  10.    <td align="left" valign="top"><input type="checkbox" name="',$check[1],'" id="',$check[1],'" />',$check[2],' <br /></td>
  11.     <td align="left" valign="top"></td>';
  12.     }
  13.     $variableAlFinalDelForeach = $check[0];
  14.   } //foreach
  15.   echo '</tr>
  16. </table>';

y el resultado es éste:
Cita:
checkbox 1
Categoria 1
Categoria 1
checkbox 1
Categoria 2
Categoria 2
  #4 (permalink)  
Antiguo 21/02/2010, 18:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Bueno, solo quise darte el ejemplo, para que tuvieras idea, creo que, en vez de usar == usa != en el if.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 21/02/2010, 18:26
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Cita:
Iniciado por abimaelrc Ver Mensaje
Bueno, solo quise darte el ejemplo, para que tuvieras idea, creo que, en vez de usar == usa != en el if.
Ah vaya aquí la cosa mejoró, pero sigue teniendo un pequeñito problema, en el array hay dos categorias con tres checkbox cada una pero solo me muestra 2 de cada una, ¿qué está mal en este caso?.
  #6 (permalink)  
Antiguo 21/02/2010, 18:32
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Cita:
Iniciado por Fleon Ver Mensaje
Ah vaya aquí la cosa mejoró, pero sigue teniendo un pequeñito problema, en el array hay dos categorias con tres checkbox cada una pero solo me muestra 2 de cada una, ¿qué está mal en este caso?.
Me cito, descubrí que no muestra el primer checkbox de la categoria sino a partir del segundo en adelante.
  #7 (permalink)  
Antiguo 21/02/2010, 18:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Tienes que analizar lo que hace el código. Te sugiero que hagas un echo a las variables para que veas como esta recorriendo el array y veas como esta funcionando las condiciones. Piénsalo de esta forma, como corre la primera vez y donde debe ubicarse la variable que estoy recorriendo, luego que terminar, como corre la segunda vez y así sucesivamente.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 21/02/2010, 18:46
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Cita:
Iniciado por abimaelrc Ver Mensaje
Tienes que analizar lo que hace el código. Te sugiero que hagas un echo a las variables para que veas como esta recorriendo el array y veas como esta funcionando las condiciones. Piénsalo de esta forma, como corre la primera vez y donde debe ubicarse la variable que estoy recorriendo, luego que terminar, como corre la segunda vez y así sucesivamente.
Fíjate que lo acabo de resolverlo de un modo chapucero , el array lo hice de esta manera:

Código PHP:
Ver original
  1. //listamos los permisos disponibles
  2.     $permisos = array(
  3.         array("Admin","",""),
  4.         array("Admin", "add_user", "Permitir Crear nuevos usuarios"),
  5.         array("Admin", "del_user", "Permitir borrar usuarios"),
  6.         array("Admin", "edit_user", "Permitir editar usuarios"),
  7.         array("Secciones","",""),
  8.         array("Secciones", "add_section", "Permitir Crear nuevas secciones"),
  9.         array("Secciones", "del_section", "Permitir borrar secciones"),
  10.         array("Secciones", "edit_section", "Permitir editar secciones"),
  11.         array("Secciones", "view_section", "Permitir ver secciones")
  12.         );

jajaja y así me funciona de pelos , bueno me queda sólo otra cosa, la fila donde se muestran los checkboxs tiene dos columnas, quisiera que al llegar X checkboxs continúe en la otra columna, ¿ se podrá?
  #9 (permalink)  
Antiguo 21/02/2010, 18:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problemas Creando Checkboxes y agrupación desde Array

Sí se puede, pero vas a tener que leer esto para poder lograrlo http://www.forosdelweb.com/f18/aport...tablas-618528/.

PD: no le veo sentido entonces en hacer condiciones en tu formulario. Te sugiero que analizes bien cual es el mótivo de las condiciones y que debo hacer con ellas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: checkboxes
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 09:22.