JavaScript - Problemas con array

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con array

Publicado por Javier (23 intervenciones) el 08/11/2012 19:42:23
Hola, buenas tardes.
Me encuentro atascado y la verdad es que no se que estoy haciendo mal.
Os cuento.
Tengo un proceso php que lee de una tabla mysql y lo presenta en pantalla. Hasta ahi bien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
echo "<script> i=0;</script>";
 
    $query1 = "select * from $tabla_db2";     // Esta linea hace la consulta sobre las balizas
    $result1 = mysql_query($query1);
 
    while ($registro1 = mysql_fetch_array($result1)){
echo "<tr>
     <td width='30'></td> 
     <td width='10'>".$registro1['ca']."</td>
     <td width='10'>".$registro1['cb']."</td>
     <td width='10'>".$registro1['cc']."</td>
    </tr> 

// el siguiente script va cargando el array conforme lee de la tabla (creo que es correcto).
  
  <script> marcaba(i,".$registro1['cb'].",".$registro1['cc'].");</script>
// sumo 1 a i
    <script> i= i + 1;</script>


El proceso marcaba es el siguiente:

1
2
3
4
5
6
7
8
9
10
function marcaba(i, valor1, valor2){
  // carga el array balizas para luego posicionarlas en el mapa
       s[i,0]= "dato"+ i;
       s[i,1]= valor1;
       s[i,2]= valor2;
       // i=i++;
       vari = "La longitud del array: " +s[i,1]+ ".." +s[i,2]+ ".." + s[i,0]
       alert(vari);
 
};


Posteriormente y una vez cargada la pagina si pulso un input llamo a la siguiente funcion que lo que hace es leer el array y tratar los datos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function marcab(balizas){
 
	var markers = new OpenLayers.Layer.Markers( "Marca" );
	map.addLayer(markers);
	var size = new OpenLayers.Size(10,10);
	var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
	var icon = new OpenLayers.Icon( "../img/punto.jpg", size,offset);
        var icon1 = icon.clone();
       c = 0;
      for (c=0; c < balizas[c,0].length ;c++){
 
        centro1 = new OpenLayers.LonLat(balizas[c,1], balizas[c,2]);
        markers.addMarker(new OpenLayers.Marker(centro1, icon.clone()));
 
        };
 
};


Este ultimo proceso es el que no funciona pues siempre me muestra el ultimo elemento del array.
¿Que estoy haciendo mal?.

Gracias a todos.
Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con array

Publicado por xve (2100 intervenciones) el 08/11/2012 21:46:26
Hola Javier, revisando tu código, no me queda claro cuando llamas a la funcion marcab() que parámetro le pasas??
Otra cosa que no veo, es donde defines la variable "s"??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con array

Publicado por Javier (23 intervenciones) el 08/11/2012 22:28:07
Gracias, como siempre, xve.
La variable s, es en realidas balizas y este array lo he definido como ves a continuacion:

<script type="text/javascript">

var map;
var layer;
var balizas; // array de carga de balizas
var i = 0; // contador del array de balizas
.....
balizas = new Array();
....
Y llamo a la funcion marcab() asi:

<div id="lista" align='right'>
<input type="button" value="Carga puntos" onclick="marcab(balizas);">


Espero que sea suficiente.

Muchas gracias de nuevo.
Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con array

Publicado por xve (2100 intervenciones) el 09/11/2012 07:32:40
Hola Javier, entonces no entiendo la función marcaba(), ya que estas poniendo los datos en un array denominado "s"

1
2
3
s[i,0]= "dato"+ i;
s[i,1]= valor1;
s[i,2]= valor2;

No debería de ser así?
1
2
3
balizas[i,0]= "dato"+ i;
balizas[i,1]= valor1;
balizas[i,2]= valor2;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con array

Publicado por Javier (23 intervenciones) el 09/11/2012 07:41:49
Gracias Dilver.
Si cierto, es balizas.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar