Zur Navigation

Diashow mit PHP und JavaScript

1 tobi

Hallo,

evtl. kann mir ja jemand weiter helfen. Folgende Diashow läuft unter 7.1. nicht mehr. Unter 5.5.38 lief sie noch problemlos.
Kann mir jemand helfen dies zu beseitigen?

<?php

# Diashow mit PHP und JavaScript

# Verzeichnis der Bilder
$verzeichnis = "images/bilder/w-bung/klein/";

# Geschwindigkeit in Millisekunden
# 3000 = 3 Sekunden
$peed = 3000;

echo "<div style='text-align: center;'><br /><img id='dummy' src='#'></div>

<script type='text/javascript'>
var bild = new Array();
war i = 0;
";

$ordner = openDir($verzeichnis);
$by = 0;
while ($file = readDir($ordner)) {
if($file != "." && $file != "..") {
echo "bild[$by]='$verzeichnis$file';\n"; $by++;
}
}
closeDir($ordner);

echo
"function anzeigen() {
if (i < bild.length) {
document.getElementById('dummy').src=bild[i];
i++;
}
else {
i = 0;
}
setTimeout('anzeigen()', $peed);
}
anzeigen();
</script>
";
?>

Die Fehlermeldung ist:
syntax error, unexpected 'var' (T_VAR)

mfg tobi

28.06.2017 07:13

2 Jörg Kruse

Ich habe den Titel mal korrigiert - es handelt sich hier um JavaScript, nicht um Java.

Auf welche Zeile bezieht sich die Fehlermeldung? Das einzige im Code enthaltene var befindet sich im gequoteten Bereich, sollte den PHP-Parser von daher eigentlich nicht interessieren. Mit PHP 7.0 erhalte ich eine solche Fehlermeldung nicht. Verschwindet diese denn, wenn du das var weglässt:

bild = new Array();

Das war in der folgenden Zeile sollte übrigens wohl auch ein var sein:

war i = 0;

Ein Schlüsselwort war ("Krieg") gibt es in JavaScript nicht :)

28.06.2017 08:07

3 tobi

Ja das "war" war ein versehen.

wenn ich das var bei bild entferne, dann kommt 0 syntax error, unexpected '='

Ich muß jetzt etwas ausholen. Ich habe den Code in Joomla eingebaut, dort kommt die Fehlermeldung.



Wenn ich es jetzt in einer einzelnen php Datei unter 7.1 teste dann kommt keine fehlermeldung, allerdings auch kein bild.



28.06.2017 09:01 | geändert: 28.06.2017 09:19

4 Jörg Kruse

Dann ist das u.U. ein Joomla-Bug - aus irgendeinem Grund wird die echo Ausgabe frühzeitig beendet. Du kannst ja mal versuchen, die einzelnen Zeilen separat auszugeben:

echo "<div style='text-align: center;'><br /><img id='dummy' src='#'></div>\n";
echo "\n";
echo "<script type='text/javascript'>\n";
echo "var bild = new Array();\n";
echo "var i = 0;\n";

28.06.2017 09:35

5 tobi

Jetzt kommt dann:
0 syntax error, unexpected '"; echo "' (T_CONSTANT_ENCAPSED_STRING)

Kann man das Ganze evtl. auch irgendwie ohne Javascript lösen?

Ich möchte einzelne Bilder wechseln anzeigen lassen.

28.06.2017 09:46

6 Jörg Kruse

JavaScript wird hier für die Diashow-Funktionalität verwendet.

Verwendest du diese Erweiterung:

https://www.regularlabs.com/extensions/sourcerer

... und ist diese auf dem neuesten Stand? Ältere Versionen haben ggf. auch ein Problem mit PHP 7

Die Ausgabe von echo, welche keine PHP-Variablen etc. enthält, könntest du auch direkt außerhalb von <?php ?> ausgeben:

<div style='text-align: center;'><br /><img id='dummy' src='#'></div>

<script type='text/javascript'>
var bild = new Array();
war i = 0;
<?php

# Diashow mit PHP und JavaScript

28.06.2017 10:38 | geändert: 28.06.2017 10:39

7 tobi

Genau diese Erweiterung benutze ich und ja, diese ist aktuell.

Habe nun deinen Rat befolgt, und

{source}

 

<div style='text-align: center;'><br /><img id='dummy' src='#'></div>

<script type='text/javascript'>
var bild = new Array();
var i = 0;


<?php# Diashow mit PHP und JavaScript
# Verzeichnis der Bilder$verzeichnis = "images/bilder/w-bung/klein/";
# Geschwindigkeit in Millisekunden# 3000 = 3 Sekunden$peed = 3000;
...

gemacht.

Es kommt zwar keine Fehlermeldung aber var bild = new Array(); var i = 0; taucht als Text auf.

28.06.2017 10:44

8 tobi

Ich muss hier nochmals schreiben, also ich habe das Ganze nun an einer anderen Stelle in Joomla eingebunden, dort funktioniert es. Es muß also an dem ausgewählten Modul im Framework liegen :(

Dann muß ich mir was anderes überlegen.

28.06.2017 10:56

9 Jörg Kruse

Sourcerer scheint mit dieser Zeile seine Probleme zu haben:

<script type='text/javascript'>

ich habe das Ganze nun an einer anderen Stelle in Joomla eingebunden, dort funktioniert es. Es muß also an dem ausgewählten Modul im Framework liegen

Ja, das klingt nach einem Bug, der in dieser speziellen Kombination von Modul / Erweiterung auftritt

28.06.2017 11:02

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]