Frage von iSupport, 49

Ich habe Probleme bei der Übergabe von Informationen aus einem php Array nach Javascript. Kann mit wer helfen?

Hallo, ich versuche die opengeo db in openstreetmaps einzubinden. Ich habe mir die Informationen in ein php array geladen und möchte dieses per json_encode an Javascript übergeben. Das klappt auch alles wunderbar, aber leider nur mit einer Zeile aus dem Array. Es wird auch so wie es aussieht nur ein Wert übergeben. Ich weiß nicht genau wo ich jetzt die Schleife einbaue bzw. wie ich an alle Informationen aus der DB komme. Wenn ich in php mein array $zeile per while schleife ausgebe ist alles so wie ich es bräuchte nur in Javascript kommt nichts an? Ok Code Posten geht nicht so wirklich =/

<?php /* Datenbankabfrage zu den Geodaten */ $db = mysqli_connect(***); if(!$db) { exit("Verbindungsfehler: ".mysqli_connect_error()); } 

$sql = "SELECT name, lat, lng FROM city WHERE lat is not null"; 

$db_erg = mysqli_query( $db, $sql ); if ( ! $db_erg ) { die('Ungültige Abfrage: ' . mysqli_error()); }

 /* while ($zeile = mysqli_fetch_array( $db_erg)) { } 

*/ 

$zeile = mysqli_fetch_array( $db_erg ); ?>

/* var geo = new array; */

var geo = <?php echo json_encode($zeile)?>;

var map = L.map('map').setView([geo[1], geo[2]], 10);document.write(geo[0]);document.write(geo[1]);document.write(geo[2]);L.tileLayer('OpenStreetMap contributors'}).addTo(map);L.marker([geo[1], geo[2]]).addTo(map) .bindPopup('Hallo Welt!
Besuchen Sie meine Webseite').openPopup();

Antwort
von mastema666, 32

Kannst du den Code mal auf hastebin.com oder so posten? Das ist hier leider im Grunde unlesbar.

Grundsätzlich:

Ich würde den Array einfach in ein JSON Objekt umwandeln und dann z.B. per Ajax (oder direkt, je nachdem wo / wie du das brauchst halt) im JS einlesen, das funktioniert in der Regel problemlos.

Kommentar von mastema666 ,

Ok, nu ists ja zumindest etwas besser lesbar.

Mal folgendes versucht?

var geo = $.parseJSON(<?php echo json_encode($zeile)?>);

(Mit JQuery, ohne wärs glaube ich sowas wie "JSON.parse(...)", bin aber nicht sicher, ich arbeite bei JS eigtl nie ohne jQuery^^)

Kommentar von iSupport ,

Hi,

vielen Dank für deine Antwort.

Erstmal der Code:

http://hastebin.com/xatayoxuko.xml

jQuery habe ich und werde den Befehl gleich testen. 

Eine Sache verstehe Grundsätzlich nicht, wenn ich mir mit dem Befehl mysqli_fetch_array die Ergebnisse meiner sql Abfrage hole, sind die alle drin? wenn ich mir das Ergebnis der JSON_decode Funktion anschaue steht da (ohne Schleife) nur eine Zeile drin. Wenn ich mir das jetzt in Javascript in eine Variable übergebe ist da auch nur der eine Wert abrufbar. Ich verstehe nicht wie die Schleifen von php und javascript zusammenlaufen müssen =/


Viele Grüße

Kommentar von mastema666 ,

Also das "json_encode" darf man natürlich erst nach der Schleife nutzen, nicht darin, in der Schleife hat man ja immer nur jeweils eine Zeile.

Ich hab mal versucht den wichtigen Teil deines Codes ein bisschen anzupassen:

http://hastebin.com/afesohikom.php

Natürlich ungetestet, aber so sollten auf jeden Fall dann alle Zeilen in der JS-Variablen "geo" enthalten sein.

Kommentar von iSupport ,

Vielen Dank. Ich teste es!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten