Foros del Web » Programando para Internet » PHP »

en bucle for solo toma primer valor

Estas en el tema de en bucle for solo toma primer valor en el foro de PHP en Foros del Web. Saludos: Tengo que pasar varios arrays PHP a arrays Javascript, para poder trabajar con google maps. En el codigo que tengo solo consigo pasar tres ...
  #1 (permalink)  
Antiguo 03/01/2012, 14:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 11 meses
Puntos: 0
en bucle for solo toma primer valor

Saludos:

Tengo que pasar varios arrays PHP a arrays Javascript, para poder trabajar con google maps. En el codigo que tengo solo consigo pasar tres arrays. Desde que añado un cuarto (Son 9), ya solo da una vuelta el bucle y no sigue asignando valores. El bucle que utilizo es el siguiente.
Código PHP:
for($r 0$r<count($elemento); $r++){
                         echo 
'elemento['$r .'] = "'$elemento[$r] .'";';
                         echo 
'latitud['$r .'] = "'$latitud[$r] .'";';
                         echo 
'longitud['$r .'] = "'$longitud[$r] .'";';
                         echo 
'altura['$r .'] = "'$altura[$r] .'";';

Antes he declarado los arrays en javascript tipo var elemento= new Array();

Y para terminar todo esto está en un archivo php externo que llamo através de un require.

Espero haberme explicado bien. Gracias
  #2 (permalink)  
Antiguo 03/01/2012, 14:49
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: en bucle for solo toma primer valor

¿Estás seguro de que en tu "array" hay más de tres elementos?

¿Has intentado con un "while"?
  #3 (permalink)  
Antiguo 03/01/2012, 14:57
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: en bucle for solo toma primer valor

ya probaste a imprimir el

Código PHP:
Ver original
  1. count($elemento);
?????????

ademas tiene que tener en cuenta que esta recorriendo unicamente el array elemento, no se si latitud, altura, longitud, tienen la misma cantidad de elementos
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #4 (permalink)  
Antiguo 03/01/2012, 15:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: en bucle for solo toma primer valor

Si. He probado con un while y nada. Hace lo mismo.
Los array en php tiene cada uno 2000 elementos que coge de una base de datos postgres.
  #5 (permalink)  
Antiguo 03/01/2012, 15:06
Avatar de Martriay  
Fecha de Ingreso: noviembre-2010
Mensajes: 80
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: en bucle for solo toma primer valor

como dice malakian, lo mejor sería que imprimas el resultado de count($elemento)
  #6 (permalink)  
Antiguo 03/01/2012, 15:11
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: en bucle for solo toma primer valor

<?php
require ('conexiones.php');
?>
<script type="text/javascript">
var elemento = new Array();
var latitud = new Array();
var longitud = new Array();
var altura = new Array();

<?php

for($r = 0; $r<count($elemento); $r++){

echo 'elemento['. $r .'] = "'. $elemento[$r] .'";';
echo 'latitud['. $r .'] = "'. $latitud[$r] .'";';
echo 'longitud['. $r .'] = "'. $longitud[$r] .'";';
echo 'altura['. $r .'] = "'. $altura[$r] .'";';
}
?>
</script>

En el archivo conexiones.php es donde estan los arrays php con las conexiones a la base de datos. En este archivo hago el paso de los arrays javascript y finalmente de un tercer archivo llamo a estos dos.
Y si he probado a imprimir el count($elemento) y muestra el numero 1997 (Elementos totales)

Última edición por controler; 03/01/2012 a las 15:16 Razón: Datos incompletos
  #7 (permalink)  
Antiguo 03/01/2012, 15:29
Avatar de Martriay  
Fecha de Ingreso: noviembre-2010
Mensajes: 80
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: en bucle for solo toma primer valor

probá ahora hacer un

for($i = 0; $i<count($elemento);$i++){
echo $elemento[$i],"<br />";
}

y fijate si te imprime los 1997 elemtnos
  #8 (permalink)  
Antiguo 03/01/2012, 16:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: en bucle for solo toma primer valor

Mientras no salga del php está todo perfecto. Todos los arrays están llenos con los 1997 elementos, pero cuando intento pasar esos valores a su array javascript es cuando tengo los problemas. Y lo raro es que si en el bucle for solo tengo tres arrays, los arrays se llenan con los valores correspondientes pero en cuanto paso de tres a 8 dentro del bucle es cuando falla.
  #9 (permalink)  
Antiguo 03/01/2012, 16: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: en bucle for solo toma primer valor

¿Y no es mejor convertir tus arrays de PHP directamente en arrays de Javascript usando JSON?
http://php.net/json_encode
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 04/01/2012, 08:08
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: en bucle for solo toma primer valor

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y no es mejor convertir tus arrays de PHP directamente en arrays de Javascript usando JSON?
[url]http://php.net/json_encode[/url]
Gracias pateketrueke. No recordaba JSON. Hacía mucho que no tocaba PHP.

Al final lo he solucionado de la siguiente manera:

var elemento = <?php echo json_encode($elemento); ?>;
var latitud = <?php echo json_encode($latitud);?>;
var longitud = <?php echo json_encode($longitud);?>;
var altura = <?php echo json_encode($altura);?>;

Etiquetas: bucle, primer, toma
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:34.