Foros del Web » Programando para Internet » PHP »

Recojer valores de array mutidimensional

Estas en el tema de Recojer valores de array mutidimensional en el foro de PHP en Foros del Web. Hola amigos como estais, Vereis, tengo un formulario en el que muestra todos los usuarios en a cada uno de llos le asigna un checkbox ...
  #1 (permalink)  
Antiguo 10/02/2011, 08:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Recojer valores de array mutidimensional

Hola amigos como estais,

Vereis, tengo un formulario en el que muestra todos los usuarios en a cada uno de llos le asigna un checkbox para posteriormente seleccionar los que se qieran y enviar el Nusuario de cada uno de los seleccionados, este es el codigo que escribe el chekbox:

if($array = mysql_fetch_array($resultado)){

do{


echo '<td class="row" bgcolor="'.$color.'" width="10px"><input name="usuario[$array]" type="checkbox" value="'.$array["Nusuario"].'"/></td>';

}while ($array = mysql_fetch_array($resultado));
}


Creo que estaria bien, la cosa es que despues no consigo que me muestre todos los "Nusuario solo consiguo que me muestre el ultimo seleccionado"

Cre que el problema esta a la hora de recojerlo, decir que no estoy muy puesto en este tipo de array

codigo de recojida:

$usuario = $_POST['usuario'];
foreach($usuario as $array)
{
foreach($array as $Nusuario)
{
echo $Nusuario;
}
}

Creo que estoy escribiendo mal el modo en que recoje el array a ver si alguien me ilumina

Un saludo amigos y gracias de ante mano
  #2 (permalink)  
Antiguo 10/02/2011, 08:24
Avatar de _-ZeuS-_  
Fecha de Ingreso: junio-2007
Ubicación: Quito, Ecuador! ;)
Mensajes: 100
Antigüedad: 16 años, 10 meses
Puntos: 7
Respuesta: Recojer valores de array mutidimensional

si trabajas con checkbox necesitas hacer un array html tipo

Código:
<input type="checkbox" name="<?php <nombre> ?>[]">
ahí puedes recogerlo como intentas :) cualquier cosa comentame!
  #3 (permalink)  
Antiguo 10/02/2011, 09:07
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

Hola amigo gracias por su respuesta.

Pues estoy colocando de este modo el checkbox:

<input type="checkbox" name="<?php usuario ?>[$array]" value="<?php $array[Nusuario] ?>">

Y recojiendolo del mismo modo que anteriormente:

$r = $_POST['usuario'];
foreach($r as $array)
{
foreach($array as $Nusuario)
{
echo $Nusuario;
}
}

pero me sigue dando el mismo error:


Warning: Invalid argument supplied for foreach() in /home/guardar_cuota_usuario.php on line 16

Parece como si no lo estuviese enviando correctamente no?

Gracias amigo
  #4 (permalink)  
Antiguo 10/02/2011, 09:09
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

¿ Podrías colocar el código completo?
  #5 (permalink)  
Antiguo 10/02/2011, 09:18
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

Hola amigo, si voi a resumirlo a lo mas importante por que es bastante largo

$consulta = 'Select DISTINCT fecha From cuotas u Inner Join cuotas_usuarios c on u.Ncuota = c.Ncuota Join usuarios a On c.Nusuario = a.Nusuario WHERE a.Ncofradia = '.$_SESSION["Ncofradia"].' ORDER BY u.fecha';
$resultado = mysql_query($consulta,$conexion);

echo '<form name="grid" action="guardar_cuota_usuario.php" method="POST">';


if($array = mysql_fetch_array($resultado)){

do{

echo '<td class="row_hermanos" bgcolor="'.$color.'" width="10px"><input name="<usuario>[$array]" type="checkbox" value="'.$array["Nusuario"].'"/></td>';

echo '<td class="row_hermanos" bgcolor="'.$color.'"><a href="?Nusuario='.$array["Nusuario"].'&anio='.$array['fecha'].'" >';

if($array["Avatar"] == ""){

echo '<img class="avatar_cuotas" src="imagenes_usuario/avatar.png" width="30px" border="0">';

}else{

echo '<img class="avatar_cuotas" src="imagenes_usuario/'.$array["Avatar"].'" width="30px" border="0">';
}

echo '<font class="">'.$array["Nombre"].'&nbsp;'.$array["Apellidos"].'</font></a></td>';

echo '<td class="row_cargo" align="center" bgcolor="'.$color.'">'.$array["cargo"].'</td>';

}while ($array = mysql_fetch_array($resultado));
}

De esta manera escribe todos los usurarios con su checkbox y acontinuacion como intento recojerlo y mostrarlo de este modo:

$usuario = $_POST['usuario'];

foreach($usuario as $array)
{
foreach($array as $Nusuario)
{
echo $Nusuario;
}
}
  #6 (permalink)  
Antiguo 10/02/2011, 09:19
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

Y este es al cambio queme recomendo Zeus pero creo que me sigo euivocando en algo

<input type="checkbox" name="<?php usuario ?[$array]>" value="<?php $array[Nusuario] ?>">
  #7 (permalink)  
Antiguo 10/02/2011, 09:20
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

Creo que hay algun error al enviarlo
  #8 (permalink)  
Antiguo 10/02/2011, 09:22
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Recojer valores de array mutidimensional

MMMM

y este signo???

<?php usuario ?[$array]> a que se debe?
  #9 (permalink)  
Antiguo 10/02/2011, 09:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

He dibido equivocarme al copiarlo en realidad seria asi:

<input type="checkbox" name="<?php usuario?> [$array]" value="<?php $array[Nusuario] ?>">
  #10 (permalink)  
Antiguo 10/02/2011, 09:34
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Recojer valores de array mutidimensional

Prueba cambiando esto:


Código PHP:
Ver original
  1. <input type="checkbox" name="<?php usuario[$array];?>" value="<?php $array[Nusuario];?>">
  #11 (permalink)  
Antiguo 10/02/2011, 09:43
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

Puede que esto le ayude mejor a visualizar su problema.

Código HTML:
Ver original
  1. <input type="checkbox" name="checkbox[animal][gato]" value="valor 1" />
  2. <input type="checkbox" name="checkbox[animal][perro]" value="valor 2" />
  3. <input type="checkbox" name="checkbox[][][]" value="3 dimension" />
  4. <input type="checkbox" name="checkbox[][]" value="2 dimension" />
  5. <input type="checkbox" name="checkbox[]" value="1 dimension" />

Al recogerlo con un $_POST[] o un $_GET[]

Código PHP:
Ver original
  1. print_r($_POST['checkbox']);


te devuelve estos resultados:

Código PHP:
Ver original
  1. (
  2.     [animal] => Array
  3.         (
  4.             [gato] => valor 1
  5.             [perro] => valor 2
  6.         )
  7.  
  8.     [0] => Array
  9.         (
  10.             [0] => Array
  11.                 (
  12.                     [0] => 3 dimension
  13.                 )
  14.  
  15.         )
  16.  
  17.     [1] => Array
  18.         (
  19.             [0] => 2 dimension
  20.         )
  21.  
  22.     [2] => 1 dimension
  23. )
  #12 (permalink)  
Antiguo 10/02/2011, 10:00
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Recojer valores de array mutidimensional

Código HTML:
<!--la variable $valor puede ir cambiando-->
<input type="checkbox" name="usuario[]" value="<?=$valor?>"> 


Código PHP:

#revisa del otro lado como llego el arreglo
print_r($_POST["usuario"]); 
  #13 (permalink)  
Antiguo 10/02/2011, 11:07
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

Si amigos la cosa es que el value es un $array['Nusuario']

En el nombre del checkbox estoy recojiendo el array

Jonasanx en tu ejemplo la propuesta seria la siguiente?:

echo '<input type="checkbox" name="usuario[$array][$array['Nusuario']" value="'.$array['Nusuario'].'">';

como se puede ver no tengo mucha expiencia con este tipo de array

Corrigeme si me equivoco amigo

de este modo:

<input type="checkbox" name="usuario[$array]" value="'.$array['Nusuario'].'">

echo $usuario = $_POST['usuario'];
foreach($usuario as $array)
{
foreach($array as $Nusuario)
{
echo $Nusuario;
}
}

me esta dando un error en el segundo foreach

No se si alomejor me estoy equivocando de metodo, lo que pretendo es conseguir todos los id de usuario que fueron marcados y recojerlos

Y gracias a todos por la yudan que me estan prestando

Última edición por franjgg; 10/02/2011 a las 11:30
  #14 (permalink)  
Antiguo 10/02/2011, 11:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Recojer valores de array mutidimensional

Hola amigos parece qe ya lo solucione dejo aqui el codigo

El checkbox:

echo '<input type="checkbox" name="usuario[]" value="'.$array['Nusuario'].'">';


Y para recibirlo:

foreach ($_POST['usuario'] as $usuario) {
echo $usuario."<br />";
}

Etiquetas: Ninguno
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 17:05.