Errore nell'utilizzo di array _nuovo_problema..

di il
5 risposte

Errore nell'utilizzo di array _nuovo_problema..

Salve
ho questa funzione:
function plotMarkers1 () {

   $.each( sites, function () {

      if ( this.marker ) this.marker.setMap(null);

      this.position = new google.maps.LatLng(this.lat, this.lng);

      this.marker = new google.maps.Marker({
         position: this.position,
         map: map,
         tit[code]
le: this.luogo
});

});
}[/code]

che se gli passo questa variabile (sites) , scritta in maniera manuale :
var sites = [

{name:'atto'   , luogo:'Roma'   ,indirizzo:'Via Veneto',lat:41.90608 ,lng:12.48942 ,data:'10 nov 201' ,context:'terr '}];
mi funziona correttamente e mi stampa il mio marker.
ma se gli passo
la funzione con tutte quelle informazioni contenute nella variabile tipo name, luogo etc. prese da database nel seguente modo:
     downloadUrl("database.php", function(doc) {
        var xmlDoc = xmlParse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
		  
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new google.maps.LatLng(lat,lng);
		  var name = markers[i].getAttribute("name");
          var luogo = markers[i].getAttribute("luogo");
          var indirizzo = markers[i].getAttribute("indirizzo");
		  var context = markers[i].getAttribute("context");
		  var data = markers[i].getAttribute("data");
		  //document.write(markers.length);
          // create the marker
		  var j=["name:"+"'"+name+"'"+","+"luogo:"+"'"+luogo+"'"+","+"indirizzo:"+"'"+indirizzo+"'"+"," + "lat:"+lat+ ","+"lng:"+lng+"," +"data:" +"'"+data+"'"+","+"context:"+"'"+context+"'"];
         var ja=[name+","+luogo+","+indirizzo+","+lat+","+lng+","+data+context];
		 //document.write(ja);
	
        
      });

non mi funziona cioè non mi stampa tutti i marker, qui la variabile da passargli a function plotMarkers1 () è j.

come posso fare?

5 Risposte

  • Re: Errore nell'utilizzo di array _nuovo_problema..

    Ciao

    Intanto ti invito a dare dei titoli più significativi (se leggi il regolamento vedrai che il tuo titolo era vietato. Te l'ho modificato)

    Riguardo al tuo problema, non stai inizializzando la stessa cosa. E, se fai più attenzione, lo noti da solo.

    Se inizializzi a manina stai creando un array di oggetti, il che è corretto. Coi dati presi dalla chiamata ajax, invece, stai cercando di creare un array con indici dei nomi (tra l'altro non possibile in javascript, al contrario di php), quindi non più un array di oggetti, ma un array con tante "righe" quante le "variabili" che stavi tentando di creare.

    quindi ti consiglio di:
    • - crearti l'oggetto
      - l'oggetto crearlo aggiungerlo all'array
    
    var sites = [];
    var j={};
    j.name = name;
    ...
    ...
    ...
    sites.push(j);
    
  • Re: Errore nell'utilizzo di array _nuovo_problema..

    Grazie mille..
  • Re: Errore nell'utilizzo di array _nuovo_problema..

    Ciao
    ho un altro problema,

    ho la seguente variabile

    var a=["Roma","Milano","SALERNO"];

    praticamente come al precedente problema non voglio assare questi dati manualmente
    ma prenderli dal database e buttarli nella variabile " var a=[]; con il seguente codice ...

     downloadUrl("database.php", function(doc) {
            var xmlDoc = xmlParse(doc);
            var markers = xmlDoc.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
              // obtain the attribues of each marker
    		  
              var lat = parseFloat(markers[i].getAttribute("lat"));
              var lng = parseFloat(markers[i].getAttribute("lng"));
              var point = new google.maps.LatLng(lat,lng);
    		  var name = markers[i].getAttribute("name");
              var luogo = markers[i].getAttribute("luogo");
              var indirizzo = markers[i].getAttribute("indirizzo");
    		  var context = markers[i].getAttribute("context");
    		  var data = markers[i].getAttribute("data");
    		  var text = markers[i].getAttribute("text");
    		  //document.write(markers.length);
              // create the marker
    		  var addresses=[luogo];
             //var ja=[name+","+luogo+","+indirizzo+","+lat+","+lng+","+data+context];
    		 //document.write(ja);
    		
    		var j={};
    		//j.name = name;
    		j.luogo=luogo;
    		//j.indirizzo=indirizzo;
    		//j.lat=lat;
    	//	j.lng=lng;
    		//j.data=data;
    		//j.context=context;
    		//j.text=text;
    		addresses.push(j);*/
              //var marker = plotMarker(name, lat,lng,luogo ,indirizzo,name,context,data);
    
    		 // document.write(contentString);
    		 
    
            }
    
       //document.getElementById("slide_bar").innerHTML = side_bar_html;
          });
    il problema è che non non mi va a scrivere quesi luoghi nella variabile..
    sbaglio a passare i dati in quella variabile?
  • Re: Errore nell'utilizzo di array _nuovo_problema..

    Ciao

    non mi è chiaro una cosa. Te in una riga fai
    var addresses=[luogo];
    luogo è un array? una stringa unica?
  • Re: Errore nell'utilizzo di array _nuovo_problema..

    Ciao,

    scusa ma quella riga
     var addresses=[luogo];
    non la prendere in considerazione perchè la dovevo togliere..

    Quindi sbaglio a fare qualcosa?

    Grazie.
Devi accedere o registrarti per scrivere nel forum
5 risposte