PHP-Array in Javascript-Array umwandeln
Michael
- sonstiges
Hallo,
Wie kann ich ein PHP-Array über eine Schleife in ein Javascript-Array umwandeln ?
Danke.
Gruss, Michael
Hallo,
Ich stehe (hoffentlich) ganz kurz davor, mein Problem mit der Umwandlung eines PHP-Arrays in ein Javascript-Array gelöst zu haben, aber leider nur kurz.
Mein Code sieht nun folgendermassen aus:
<?php
...
echo "jsArr = new Array();\r\n";
foreach ($Bilder as $Schluessel => $Inhalt)
echo "jsArr[{$Schluessel}] = "{$Inhalt}";\r\n";
...
?>
<script language="javascript" type="text/javascript">
<!--
var sliderwidth = "100%"
var sliderheight = "100%"
var slidespeed = 3
var leftrightslide = new Array();
var finalslide = '';
for (i = 0; i < jsArr.length; i++)
finalslide=finalslide+'<img src="' + jsArr [i] + '">';
Leider ist die Variable "finalslide" immer ohne Inhalt.
Wo liegt der Fehler ?
Gruss, Michael
Hallo,
Mein Code sieht nun folgendermassen aus:
<?php
...
echo "jsArr = new Array();\r\n";foreach ($Bilder as $Schluessel => $Inhalt)
echo "jsArr[{$Schluessel}] = "{$Inhalt}";\r\n";
...
?>
<script language="javascript" type="text/javascript">
Wo liegt der Fehler ?
Der Browser interpretiert den von PHP erzeugten Teil nicht als JavaScript, weil er außerhalb des SCRIPT-Elements steht. Er müsste ihn eigentlich anzeigen.
viele Grüße
Axel
Hallo Axel,
Der Browser interpretiert den von PHP erzeugten
Teil nicht als JavaScript, weil er außerhalb des
SCRIPT-Elements steht.
Er müsste ihn eigentlich anzeigen.
Hmmm, und das bedeutet was für meinen Code ?
Sorry für die vielleicht dumme Nachfrage, aber ich habe einen sehr programmier-intensiven Tag hinter mir (oder noch vor mir ?) :o)
Gruss, Michael
Hallo Michael,
Hmmm, und das bedeutet was für meinen Code ?
PHP generiert Text. Dieser wird vom Browser auf der Clientseite geparst. Wenn der erzeugte Text innerhalb eines SCRIPT-Elements steht, wird der Browser den Text als JavaScript interpretieren.
<script type="text/javascript">
<?php
[hier der PHP-Code, der das Array erzeugen soll]
?>
</script>
viele Grüße
Axel
Hallo Axel,
Hab's grad lösen können. Ich musste den Code - wie Du es in Deiner Antwort beschrieben hast - nur umstellen.
Suppi, vielen Dank für Deinen Denkanstoss !!! :-)))
Gruss, Michael
Hallo Axel,
Wie könnte ich es nun noch anstellen, dass das Array immer wieder wiederholt am Bildschirm angezeigt wird, ohne nach dem letzten Bild zu warten, d.h. das Array soll nahtlos immer wieder von rechts nach links gescrollt werden ?
Michael
Hallo Michael,
Wie könnte ich es nun noch anstellen, dass das Array immer wieder wiederholt am Bildschirm angezeigt wird, ohne nach dem letzten Bild zu warten, d.h. das Array soll nahtlos immer wieder von rechts nach links gescrollt werden ?
Bisher war hier noch kein Code zu sehen, der überhaupt fähig war nur _ein_ Bild anzuzeigen. Es wurde mal ein Text "<img src=..." irgendwie verarbeitet. Um Dir helfen zu können, ist also etwas mehr von dem Quelltext, den Du bisher hast, nötig. Besser wäre ein Link zu der Ressource, um die es geht.
viele Grüße
Axel
Hallo Axel,
Sorry, ist logisch :o)
Bitte, hier der Code, der für die Ausgabe der Bilder verantwortlich ist (einen Link gibt es noch nicht, da ich die Homepage zur Zeit noch auf meinem Rechner entwerfe):
<script language="javascript" type="text/javascript">
<!--
<?php echo "jsArr = new Array();\r\n";
foreach ($Bilder as $Schluessel => $Inhalt)
echo "jsArr[{$Schluessel}] = "{$Inhalt}";\r\n";
?>
var sliderwidth= '100%'
var sliderheight = '100%'
var slidespeed = 3
var leftrightslide = new Array();
var finalslide = '';
for (i = 0; i < jsArr.length; i++)
{
finalslide=finalslide+'<img src="' + jsArr [i] + '">';
finalslide=finalslide+'<img src="pic/gfx/L_spacer.gif" width="5" height="1">';
}
var copyspeed=slidespeed
if (document.all)
{
document.write('<marquee id="ieslider" scrollAmount=0 style="width:'+sliderwidth+'">'+finalslide+'</marquee>')
ieslider.onmouseover=new Function("ieslider.scrollAmount=0")
ieslider.onmouseout=new Function("if (document.readyState=='complete') ieslider.scrollAmount=slidespeed")
}
function regenerate()
{
window.location.reload()
}
function regenerate2()
{
if (document.layers)
{
document.ns_slider01.visibility="show"
setTimeout("window.onresize=regenerate",450)
intializeleftrightslide()
}
if (document.all)
ieslider.scrollAmount=slidespeed
}
function intializeleftrightslide()
{
document.ns_slider01.document.ns_slider02.document.write('<nobr>'+finalslide+'</nobr>')
document. ns_slider01.document.ns_slider02.document.close()
thelength=document.ns_slider01.document.ns_slider02.document.width
scrollslide()
}
function scrollslide()
{
if (document.ns_slider01.document.ns_slider02.left>=thelength*(-1))
{
document.ns_slider01.document.ns_slider02.left-=slidespeed
setTimeout("scrollslide()",100)
}
else
{
document.ns_slider01.document.ns_slider02.left=sliderwidth
scrollslide()
}
}
window.onload=regenerate2
//-->
</script>
<ilayer width=&{sliderwidth}; height=&{sliderheight}; name="ns_slider01" visibility=hide>
<layer name="ns_slider02" onMouseover="slidespeed=0;" onMouseout="slidespeed=copyspeed"></layer>
</ilayer>
Gruss, Michael