Problem bei JS-PHP umsetzung

PHP Killer

Grünschnabel
Hallo erstmal,
ich habe heute gelernt wie ich PHP in Javascript reinschreiben kann.
Nun hab ich mir zum ausprobieren eine kleine Seite erstellt.

Ich will jetzt ein PHP Array in ein JS-Array schreiben (also den Inhalt) nur gelingt
mir das nicht so wie ich mir das vorstelle.

Code:
<?php 
         $namen = array("Anton","Peter","Ernst","Tina","Jochen","Michael");
         $anzahl_namen = count($name);
?>
<script type="text/javascript">
	<!--
		var namen= new Array(<?php echo $anzahl_namen;?>);
		<?php $buffer=0;?>
		for (var buffer=0; buffer < <?php echo $anzahl_namen; ?>; buffer++)
		{
			namen[buffer] = "<?php echo $namen[$buffer]; ?>";
			<?php $buffer++; ?>
			alert ("<?php echo $buffer; ?>");
		}.......

Der buffer der über alert ausgegeben wird bleibt immer auf 1.. wird aber 6 mal(anzahl_namen) aufgerufen

Am einfachsten wäre es natürlich wenn ich einfach die JS- 'buffer' variable für das PHP Array auch verwenden könnte.

Weis jemand Rat? :(

Danke schonmal
 
Zuletzt bearbeitet:
Hi,

Dein Problem ist, dass Du die Schleife nicht in PHP durchläufst, sondern dass diese in Javascript steht.
Dein Ergebnis in Javascript sieht also folgendermaßen aus:

Code:
<script type="text/javascript">
<!--
var namen= new Array(6);
for (var buffer=0; buffer < 6; buffer++)
{
    namen[buffer] = "Anton";
    alert ("1");
}

Verwende mal folgendes Skript:

PHP:
<?php 
         $namen = array("Anton","Peter","Ernst","Tina","Jochen","Michael");
         $anzahl_namen = count($name);
?>
<script type="text/javascript">
<!--
   var namen= new Array('<?php=implode("','",$namen)?>');
   alert(namen.length);

Damit sollte dein Javascript bereits von Anfang an ein Array mit den, in PHP definierten Namen besitzen und das Alert sollte entsprechend 6 ausgeben.
 
Was soll mir das bringen?
Ich will ja nicht die Anzahl an Strings im Array haben, die bekomm ich ja schon mit
Code:
var namen= new Array(<?php echo $anzahl_namen;?>);

sondern ich will die Strings aus dem PHP Array in das JS- Array bringen.

die Ausgabe
Code:
alert ("<?php echo $buffer; ?>");
dient nur zur überprüfung.
 
Vielleicht probierst du den Vorschlag von shockshell einfach mal aus ;-]
Code:
var namen= new Array('<?php=implode("','",$namen)?>');
...macht genau das, was du willst, es erzeugt einen JS-Array, dessen Inhalt mit dem von $namen übereinstimmt.
Der alert dient lediglich zur Überprüfung, ob der JS-Array gefüllt wurde.
 
Also bei mir gibts das erst mal nen Parse fehler.

"<?php=implode"

Dann hab ichs mit
Code:
var namen= new Array('<?php implode("','",$namen);?>');
alert (namen[0]);
alert (namen[1]);
probiert.

Leider gings nicht.
Bei namen[0] kommt gar nichts, bei namen[1] und allen weiteren kommt 'undefined'.
 
Wie wärs dabei mit echo()?
Code:
var namen= new Array('<?php echo  implode("','",$namen);?>');

Übrigens hilft es auch manchmal, die Suchfunktion zu benutzen... das letzte mal wurde dieses Thema gestern erörtert, da gings sogar um mehrdimensionale Arrays;)
 
Zurück