Foros del Web » Programando para Internet » PHP »

Recorrer bien este array...

Estas en el tema de Recorrer bien este array... en el foro de PHP en Foros del Web. Send, es un problema interesante creo, no sabés la cantidad de checks, sabés los nombres de los checks?...

  #31 (permalink)  
Antiguo 13/08/2010, 13:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Send, es un problema interesante creo, no sabés la cantidad de checks, sabés los nombres de los checks?
  #32 (permalink)  
Antiguo 13/08/2010, 13:22
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Recorrer bien este array...

Código HTML:
Ver original
  1. <input type="checkbox" name="checks[]">
  2. <input type="checkbox" name="checks[]" />
  3. <input type="checkbox" name="checks[]" />
  4. <input type="checkbox" name="checks[]" />

Código PHP:
Ver original
  1. foreach($_POST["checks"] as $key => $value){
  2.    // haces lo que quieres hacer con cada checkbox
  3. }
__________________
More about me...
~ @rhyudek1
~ Github
  #33 (permalink)  
Antiguo 13/08/2010, 13:27
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Cita:
Iniciado por fede1976 Ver Mensaje
Send, es un problema interesante creo, no sabés la cantidad de checks, sabés los nombres de los checks?
Si, es nombres[]

Cita:
Iniciado por Hidek1 Ver Mensaje
Código HTML:
Ver original
  1. <input type="checkbox" name="checks[]">
  2. <input type="checkbox" name="checks[]" />
  3. <input type="checkbox" name="checks[]" />
  4. <input type="checkbox" name="checks[]" />

Código PHP:
Ver original
  1. foreach($_POST["checks"] as $key => $value){
  2.    // haces lo que quieres hacer con cada checkbox
  3. }
Se ve interesante pero ya lo probe y lo que sucede es que me tira el ultimo valor de esta forma y no todos..
  #34 (permalink)  
Antiguo 13/08/2010, 13:30
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Recorrer bien este array...

¬_¬! pero hombre.. tienes que hacer la accion dentro del bucle no fuera

Código PHP:
Ver original
  1. foreach($_POST["checks"] as $key => $value){
  2.      echo $value."<br />"; //
  3. }

www.php.net/array
http://es.wikipedia.org/wiki/Bucle_%...maci%C3%B3n%29
__________________
More about me...
~ @rhyudek1
~ Github
  #35 (permalink)  
Antiguo 13/08/2010, 13:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer bien este array...

Cita:
Iniciado por SeNdEr2003 Ver Mensaje
Si, es nombres[]
Se ve interesante pero ya lo probe y lo que sucede es que me tira el ultimo valor de esta forma y no todos..
SeNdEr2003, ¿porque no te vas a la plaza y te tomas un helado?

si leemos con calma todo el tema... ya quedó muy claro desde un inicio lo que intentas, y bueno... es tan común que bastantes ya lo hemos conseguido antes!!

¿como?

pues como te hemos dicho... sin mas.... el ultimo ejemplo de Hidek1 es tan claro como cualquier otro a lo largo de este tedioso tema...

¿cual es el problema?
R: tomate un helado, enfría tu cabeza... vuelve al foro, lee con calma de nuevo y reflexiona!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #36 (permalink)  
Antiguo 13/08/2010, 13:32
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: Recorrer bien este array...

Cita:
Se ve interesante pero ya lo probe y lo que sucede es que me tira el ultimo valor de esta forma y no todos..
cuantos check marcaste?? xq si los marcas todos el te debe indicar la cantidad de nombres marcados ya q esta como un arreglo y lo estas recorriendo con el bucle foreach haz una prueba y coloca
Código PHP:
foreach($_POST["nombres"] as $key => $value){
     echo 
"el indice es ".$key." el valor es ".$value."<br>";  
      } 
y marca todos en el formulario te deberia crear la lista de los nombres con el id respectivo al lado ej:
el id es 0 el nombre es carlos
el id es 1 el nombre es SeNdEr2003
y asi sucesivamente 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
  #37 (permalink)  
Antiguo 13/08/2010, 13:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Send, pudiste resolverlo?
  #38 (permalink)  
Antiguo 13/08/2010, 14:05
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Cita:
Iniciado por fede1976 Ver Mensaje
Send, pudiste resolverlo?
no che y lo estoy recorriendo dentro del for...
  #39 (permalink)  
Antiguo 13/08/2010, 14:07
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Recorrer bien este array...

porque no, pegas de nuevo tu código para ver como lo tienes en este momento?
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #40 (permalink)  
Antiguo 13/08/2010, 14:12
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Código PHP:
foreach ($_POST['nombres'] as $key => $valor) {
 print 
$valor[$key];

asi me trae el ultimo....
  #41 (permalink)  
Antiguo 13/08/2010, 14:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer bien este array...

Cita:
Iniciado por SeNdEr2003 Ver Mensaje
Código PHP:
foreach ($_POST['nombres'] as $key => $valor) {
 print 
$valor[$key];

asi me trae el ultimo....
es completamente ambiguo como lo haces... pues deberías ser así:
Cita:
Iniciado por carlos_belisario Ver Mensaje
cuantos check marcaste?? xq si los marcas todos el te debe indicar la cantidad de nombres marcados ya q esta como un arreglo y lo estas recorriendo con el bucle foreach haz una prueba y coloca
Código PHP:
foreach($_POST["nombres"] as $key => $value){
     echo 
"el indice es ".$key." el valor es ".$value."<br>";  
      } 
y marca todos en el formulario te deberia crear la lista de los nombres con el id respectivo al lado ej:
el id es 0 el nombre es carlos
el id es 1 el nombre es SeNdEr2003
y asi sucesivamente suerte
¿acaso no te gusta leer o no sabes?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #42 (permalink)  
Antiguo 13/08/2010, 14:25
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Cita:
Iniciado por pateketrueke Ver Mensaje
es completamente ambiguo como lo haces... pues deberías ser así:


¿acaso no te gusta leer o no sabes?
sino tienes ganas de responder bien directamente no lo hagas, eso lo he intentado y me trae siempre el ultimo valor......
  #43 (permalink)  
Antiguo 13/08/2010, 14:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Send:

Con este último mensaje de pateketrueke creo que debería resolverse. Yo estaba tratando de entender la cuestión. Efectivamente la matriz a recorrer en todo caso es nombres y no checks.
Con el ejemplo de pateketrueke funciona? Si no funciona, qué comportamiento tiene el código, qué hace?


Federico
  #44 (permalink)  
Antiguo 13/08/2010, 14:27
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: Recorrer bien este array...

haz un print_r de $_POST['nombres'] y muestranos q te trae
Código PHP:
print_r($_POST['nombres']); 
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #45 (permalink)  
Antiguo 13/08/2010, 14:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

o mejor dicho name?
  #46 (permalink)  
Antiguo 13/08/2010, 14:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer bien este array...

Cita:
Iniciado por SeNdEr2003 Ver Mensaje
sino tienes ganas de responder bien directamente no lo hagas, eso lo he intentado y me trae siempre el ultimo valor......
lo que pasa es que si respondo directamente sería lo mismo a escribir el mismo bucle como todos ya hemos puesto anteriormente...

y bueno, ¿para que repetir lo mismo si aún no lo entiendes?

de verdad... debes poner mas atención, la clave esta en el formulario también... y para que dicho código te arroje solo el último valor dentro del bucle... entonces hay algo mal con tu formulario!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #47 (permalink)  
Antiguo 13/08/2010, 14:37
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Cita:
Iniciado por carlos_belisario Ver Mensaje
haz un print_r de $_POST['nombres'] y muestranos q te trae
Código PHP:
print_r($_POST['nombres']); 
me trae todos los datos

al igual que si hago

print $_POST['nombres'][1] me trae un nombre si hago print $_POST['nombres'][2] me trae el otro y asi, pero si le meto print $_POST['nombres'][$key] me trae el ultimo..

todo esto dentro del foreach.
  #48 (permalink)  
Antiguo 13/08/2010, 14:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer bien este array...

no se ustedes amigos... pero este tema ya se torno inmortal...

vamos... que aquí todos tenemos las mismas capacidades, ¿los arboles impiden ver el bosque a quien?

por el amor de Jah SeNdEr2003!! ¿porque no lo entiendes?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #49 (permalink)  
Antiguo 13/08/2010, 14:41
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Cita:
Iniciado por pateketrueke Ver Mensaje
no se ustedes amigos... pero este tema ya se torno inmortal...

vamos... que aquí todos tenemos las mismas capacidades, ¿los arboles impiden ver el bosque a quien?

por el amor de Jah SeNdEr2003!! ¿porque no lo entiendes?
sera porque es la primera vez que lo hago.....
  #50 (permalink)  
Antiguo 13/08/2010, 14:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer bien este array...

Cita:
Iniciado por SeNdEr2003 Ver Mensaje
sera porque es la primera vez que lo hago.....
la verdad es que entendemos tu posición, y no es malo...

pero cada ves nos dices que no te sale, cuando los ejemplos son probados... y bueno, siguiendo la metodología correcta no debería fallar...

seguramente omites algo... y te pido, de favor... no permitas avanzar el tema hasta que veas claro, ¿te parece?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #51 (permalink)  
Antiguo 13/08/2010, 14:44
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: Recorrer bien este array...

con manzanas ahora dentro del foreach la variable $valor que te pusimos varios ya te va tomando cada uno de los valores que tiene tu arreglo especificamente $_POST['nombre'] entonces no tienes que indicarle el indic cuando lo imprimas haslo como t indicamos ya anteriormente
Cita:
Iniciado por carlos_belisario Ver Mensaje
cuantos check marcaste?? xq si los marcas todos el te debe indicar la cantidad de nombres marcados ya q esta como un arreglo y lo estas recorriendo con el bucle foreach haz una prueba y coloca
Código PHP:
foreach($_POST["nombres"] as $key => $value){
echo "el indice es ".$key." el valor es ".$value."<br>";
}
y marca todos en el formulario te deberia crear la lista de los nombres con el id respectivo al lado ej:
el id es 0 el nombre es carlos
el id es 1 el nombre es SeNdEr2003
y asi sucesivamente suerte
y la variable $valor es la q te va a recorrer sin indicarle el indic al $_POST['nombres']; el $key q te da el indic lo coloco como ejemplo para q vieras cual es el resultado del bucle foreach ahora hazlo tal cual como te hemos indicado ya para ver si te indica algo xq de verdad si te esta recibiendo el valor como arreglo el foreach te lo debe de recorrer
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #52 (permalink)  
Antiguo 13/08/2010, 14:47
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Send:

En qué lugar enviás la matriz nombres en el formulario? Estás usando HTML u otro lenguaje, por ejemplo Flash?

Federico
  #53 (permalink)  
Antiguo 13/08/2010, 15:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Cita:
Iniciado por SeNdEr2003 Ver Mensaje
Buenas

Estoy recibiendo un array por post y necesito recorrerlo bien para mostrar todos los datos que me llegan, es decir hago:

$mivar = $_POST["clientes"][1];

y si hago echo $mivar; me imprime Lucs

pero si pongo

$mivar = $_POST["clientes"][0];

y si hago echo $mivar; me imprime Claudio

como hago para recorrer todos?
Send:

Estoy intentando entender todo esto.
A lo mejor no conocemos bien la estructura de la matriz clientes o nombres, tal vez es multidimensional y es por eso que genera el comportamiento que vos mencionás. Estás seguro de la estructura de esta matriz?



Federico
  #54 (permalink)  
Antiguo 13/08/2010, 15:09
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 2 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Por lo extenso del post, me obligo a preguntar algo: ¿hay alguna forma que nos muestres la página previa? Es decir, esa que indicas que lo hace el 'administrador'. Se me hace muy difícil de ver una página dónde no están definidos las cantidad de checks que tiene... ¿de qué forma se genera esa página? Das a entender que de forma aleatoria pero no puede formarse con elementos infinitos...
  #55 (permalink)  
Antiguo 13/08/2010, 15:23
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Send:

Encontré en Internet un ejemplo muy parecido al tuyo, lo estoy investigando, tal vez te sirva!


Federico
  #56 (permalink)  
Antiguo 13/08/2010, 15:28
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: Recorrer bien este array...

Cita:
Iniciado por Hayi Ver Mensaje
Por lo extenso del post, me obligo a preguntar algo: ¿hay alguna forma que nos muestres la página previa? Es decir, esa que indicas que lo hace el 'administrador'. Se me hace muy difícil de ver una página dónde no están definidos las cantidad de checks que tiene... ¿de qué forma se genera esa página? Das a entender que de forma aleatoria pero no puede formarse con elementos infinitos...
bueno puede si la cantidad de check se generan con una consulta no siempre se sab la cantidad que se pueda vayan a generar ya que es variable segun la cantidad de registros q tenga en la base de datos y segun lo dicho el esta recibiendo bien los datos del formulario el problema es que no recorre bien el bucle o no esta colocando bien la sintaxis veamos q no dic a ver si le a servido o no ha conceguido la solucion
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #57 (permalink)  
Antiguo 13/08/2010, 15:33
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 2 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Quedé mariado, por eso escribí lo de arriba! jajaja. Veremos si le encuentra la solución... ahora tengo intriga...
  #58 (permalink)  
Antiguo 13/08/2010, 15:36
 
Fecha de Ingreso: septiembre-2009
Mensajes: 68
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Recorrer bien este array...

Bueno, yo creo que es imposible no conocer la cantidad de "lo que sea" siempre y cuando hayas programado tu mismo la pagina web integramente. En caso de que los checks se generen en base a una consulta siempre se puede utilizar mysql_num_rows($consulta) para determinar la cantidad de registros, por ejemplo. O un contador en el bucle de la impresion incluso...

Aun asi creo que este tema se esta desmadrando, con lo facil que seria poner el codigo integro (con formulario incluido) y ver donde esta fallando realmente.
  #59 (permalink)  
Antiguo 13/08/2010, 15:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Recorrer bien este array...

Send:

Investigué el código, parece bastante simple y tal vez resuelva tu problema (el único problema es que usa SPLIT que parece que ya se desaconseja). Decíme si te lo envío, no quiero sacarte de los pasos que estás dando que quizá también resuelvan el problema.


Federico
  #60 (permalink)  
Antiguo 13/08/2010, 15:45
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Recorrer bien este array...

Hasta yo me he perdido... ¡Menudo lio!

SeNdEr2003 sería perfecto que nos pusieras lo que llevas hecho hasta ahora, ya que de lo contrario, me resulta imposible ayudarte. Después de las soluciones que te hemos dado y comprabado que funcionan (excepto a ti) es evidente que necesitamos ver más de tu programa, para ver que sucede.

Saludos,

Etiquetas: recorrer
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 04:31.