Hello Jürgen,
interessante Ideen bekommt man auch beim Lesen von
http://www.mediaevent.de/javascript/array-assoziativ.html
Hallo diese Beispiele kenne ich zum Teil
das sind aber Varianten wie man arrays in Javascript erzeugt
das brauch ich ja gar nicht.
Ich wollte wissen wie man eine PHP-Array an javascript übergibt
Indem man sich für eine der oben beschriebenen Varianten entscheidet und dann mittels PHP den passenden JavaScript-Text aus dem PHP-Array generiert.
Du kannst das auch als aktive Komponente bauen in PHP und dann mit dem passenden Header an JavaScript übergeben, bzw. das HTML-Dolument muss es als JavaScript-Datei einbinden. Das wäre dann aber ggf. global.
Beispiel: ein Array "buecher" aus $_SESSION an JavaScript übergeben
<?php ### fill_array.php ### utf-8 ### ÄÖÜäöü
session_start();
$_SESSION['buecher'][]='Haus der Finsternis';
$_SESSION['buecher'][]='Programmieren mit PHP';
$_SESSION['buecher'][]='Geldwäsche ohne Waschmaschine';
?>
<?php ### buecher.js.php ###
header('Content-Type: Text/Javascript; Charset=utf-8');
session_start();
echo 'var buecher = new Array("' . implode('","', $_SESSION['buecher']) .'");' . PHP_EOL;
?>
und dann das Array im HTML-Kontext laden:
<html>
<head>
<meta Charset="utf-8">
<title>Array an JavaScript übergeben</title>
</head>
<body>
<script type="text/javascript" src="buecher.js.php"></script>
<script type="text/javascript">
var key;
for (key in buecher)
{
alert("Schlüssel " + key + " mit Wert " + buecher[key]);
}
</script>
</body>
</html>
Ich habe es ausprobiert und es klappt.
Wie man jetzt das Array lokal in eine Funktion reinladen könnte, müsstest Du mal selber ausprobieren.
Natürlich kannst Du den Umweg über das Hinzuladen der JavaScript-Ressource auch weglassen. War nur mal ein Spielchen zum Woechenendeabend :-)
Shit .. jetzt muss ich wohl oder übel mir doch dieses Json-Zeugs reinziehen:(
Nee, musst Du nicht.
Hast Du ein "assoziatives Array" oder ein "echtes" JavsScript-Array, also nur indiziert?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg