prodosenbier
New member
Irgendwie schäme ich mich etwas wegen meinem Code, das geht sicher eleganter und kürzer. Aber ich brauche mal etwas Hilfe:
Google bietet an, Kartenausschnitte in Webseiten zu integrieren. Hab ich gemacht und das Teil so konfiguriert, dass auch gleich 5 Marker auf meiner Karte angezeigt werden. Diese Marker sind aber veränderlich und ich möchte später nicht immer das im Quelltext hart eincoden. Deshalb meine Idee, die Werte über eine Webseite in eine MySQL-Tabelle schreiben und mittels PHP auslesen und diese Werte in das Array für den Google-Code schreiben. Und daran verzweifele ich. Google schreibt die Werte wie folgt in das Array:
und zieht die über diese Schleife wieder raus:
Das funktioniert auch. Aber mir gelingt es nicht, die Werte aus meiner Datenbank wieder so zusammenzubauen, dass die Schleife die da wieder rausholt. Mein Array wird auch gefüllt, aber hier erstmal mein Code, wie ich das zusammenstelle:
Testweise lasse ich mir 4 Arrays befüllen, die die Werte auch enthalten und wie folgt zurückschreiben:
fplaces bring:
fplaces1 bringt:
fplaces2 bring:
fplaces3 bringt:
Werte aus dem von Google vorgegebenen Array werde durch document.write wie folgt zurückgegeben:
Frage: Wie baue ich mein Array korrekt zusammen bzw. wie formatiere ich die Werte?
Google bietet an, Kartenausschnitte in Webseiten zu integrieren. Hab ich gemacht und das Teil so konfiguriert, dass auch gleich 5 Marker auf meiner Karte angezeigt werden. Diese Marker sind aber veränderlich und ich möchte später nicht immer das im Quelltext hart eincoden. Deshalb meine Idee, die Werte über eine Webseite in eine MySQL-Tabelle schreiben und mittels PHP auslesen und diese Werte in das Array für den Google-Code schreiben. Und daran verzweifele ich. Google schreibt die Werte wie folgt in das Array:
HTML:
var fplaces = [
['F1', 53.336632, 10.346891, 4],
['F2', 53.336173, 10.348899, 5],
['F3', 53.336495, 10.349754, 3],
['F4', 53.336364, 10.347521, 2],
['F5', 53.336897, 10.347814, 1]
];
und zieht die über diese Schleife wieder raus:
HTML:
for (var i = 0; i < fplaces.length; i++) {
var fplace= fplaces[i];
var marker = new google.maps.Marker({
position: {lat: fplace[1], lng: fplace[2]},
map: map,
icon: image,
shape: shape,
title: fplace[0],
zIndex: fplace[3]
}
Das funktioniert auch. Aber mir gelingt es nicht, die Werte aus meiner Datenbank wieder so zusammenzubauen, dass die Schleife die da wieder rausholt. Mein Array wird auch gefüllt, aber hier erstmal mein Code, wie ich das zusammenstelle:
HTML:
<script>
var fplaces = new Array ();
var fplaces1 = new Array ();
var fplaces2 = new Array ();
var fplaces3 = new Array ();
phpplaces= new Array(<?php echo json_encode($places); ?>);
var dsplaces = phpplaces.toString().split(','); // die einzelnen Datensätze werden gesplittet
for (i=0; i < dsplaces.length; i++) {
for (z=0; z < 4; z++) { // jeweils 4 Entitäten jedes Datensatzes werden gesplittet
var fieldplaces = dsplaces[i].toString().split('-');
var wert0 = fieldplaces[0];
var wert1 = fieldplaces[1];
var wert2 = fieldplaces[2];
var wert3 = fieldplaces[3];
}
// verschiedne Variable werden zusammengesetzt (zum Testen)
var wertp2 = wert0 + ", " + wert1 + ", " + wert2 + ", " + wert3;
var wertp3 = wert0 + "," + wert1 + "," + wert2 + "," + wert3;
if (i + 1 < dsplaces.length) {
var wertp = "['" + wert0 + "', " + wert1 + ", " + wert2 + ", " + wert3 + "],";
var wertp1 = wert0 + ", " + wert1 + ", " + wert2 + ", " + wert3 + ",";
}
else {
var wertp = "['" + wert0 + "', " + wert1 + ", " + wert2 + ", " + wert3 + "]";
var wert1 = wert0 + ", " + wert1 + ", " + wert2 + ", " + wert3;
};
fplaces.push(wertp);
fplaces1.push(wertp1);
fplaces2.push(wertp2);
fplaces3.push(wertp3);
}
//document.write('Plätze: ');
// for (i=0; i < fplaces.length; i++) {
// document.write(fplaces[i]);
// }
//document.write('Plätze1: ');
// for (i=0; i < fplaces1.length; i++) {
// document.write(fplaces1[i]);
// }
//document.write('Plätze2: ');
// for (i=0; i < fplaces2.length; i++) {
// document.write(fplaces2[i]);
// }
document.write('Plätze3: ');
for (i=0; i < fplaces3.length; i++) {
document.write(fplaces3[i]);
}
</script>
Testweise lasse ich mir 4 Arrays befüllen, die die Werte auch enthalten und wie folgt zurückschreiben:
fplaces bring:
['F1', 41.030328, 9.544807, 1],['F2', 41.029904, 9.548047, 2],['F3', 41.028337, 9.546803, 3],['F4', 41.027924, 9.547638, 4],['F5', 41.028565, 9.548740, 5]
fplaces1 bringt:
F1, 41.030328, 9.544807, 1,F2, 41.029904, 9.548047, 2,F3, 41.028337, 9.546803, 3,F4, 41.027924, 9.547638, 4,F4, 41.027924, 9.547638, 4,
fplaces2 bring:
F1, 41.030328, 9.544807, 1F2, 41.029904, 9.548047, 2F3, 41.028337, 9.546803, 3F4, 41.027924, 9.547638, 4F5, 41.028565, 9.548740, 5
fplaces3 bringt:
F1,41.030328,9.544807,1F2,41.029904,9.548047,2F3,41.028337,9.546803,3F4,41.027924,9.547638,4F5,41.028565,9.548740,5
Werte aus dem von Google vorgegebenen Array werde durch document.write wie folgt zurückgegeben:
F1,53.336632,10.346891,4F2,53.336173,10.348899,5F3,53.336495,10.349754,3F4,53.336364,10.347521,2F5,53.336897,10.347814,1
Frage: Wie baue ich mein Array korrekt zusammen bzw. wie formatiere ich die Werte?
Zuletzt bearbeitet von einem Moderator: