Zur Navigation

Globale Variablen in JavaScript - Austausch zw. HTML-Dateien [3]

21 lava

Hm, danke, klingt logisch. Also, seit meinem System-Update hab ich noch mehr Probleme. Momentan switche ich zwischen KDE und FVWM, und was unter FVWM noch ging, geht unter KDE jetzt nicht mehr....
Muß ich das
[code] echo "<img src=$bilderdir/$bilder[j].jpg[\code] etwa auch mit Zeichenkettenoperator schreiben? Irgendwie findet er nämlich jetzt die Bilder nicht mehr, obwohl er sie unter FVWM noch gefunden hatte.

Und Auslagern eines JavaScripts, das in der Datei drin durchaus funktioniert hat, via [code]<script language="JavaScript" src="beides.js" type="text/javascript">[\code] in eine Datei beides.js oder meinetwegen auch beides.php hat auch nicht funktioniert, obwohl ich ganz genau weiß (und es ja auch hier im Forum dokumentiert ist), daß sowas früher schonmal ging....

31.05.2007 22:18 | geändert: 31.05.2007 22:22

22 Jörg Kruse

Muß ich das
 echo "<img src=$bilderdir/$bilder[j].jpg
etwa auch mit Zeichenkettenoperator schreiben?


Hier hast du den String ja bereits innerhalb von Anführungszeichen (wenn am Ende der Zeile noch eins folgt). Überprüfe die HTML-Ausgabe im Browser, dann siehst du, ob der konstruierte Pfad so korrekt ist

PS: der BBCode-Codeblock wird mit [/code] geschlossen, nicht mit [\code] ;)

31.05.2007 22:49 | geändert: 31.05.2007 22:51

23 lava

Ja, funktioniert jetzt - danke :)

Ich hatte vor einiger Zeit mal gefragt, wie ich eine Javascript-Variable aus einer Datei an eine andere, die in einem neuen Frame oder Window geöffnet werden soll, mit übergeben kann. Damals hattest du mir die Query-Strings gezeigt, die offenbar für Javascript-Variablen funktionieren.

Soweit ich weiß, funktionieren sie auch für PHP-Variablen (und können dann mit $_REQUEST ausgelesen werden).

Bei JavaScript werden sie mit window.location.search.substr(3) ausgelesen, das hattest du mir ebenfalls hier im Forum erläutert.

Nun möchte ich meine PHP-Variable $j an eine Javascript-Struktur
 window.document.images[0].src= Feld[$j] 
übergeben und komm ein bißchen durcheinander: kann ich hier mein PHP-Feld direkt benutzen oder muß ich ein Javascript-Feld aufbauen (wie ich das tun kann, hattest du mir hier bereits einklärt) und auch das $j in eine Javascript-Variable umändern (wie ich das tun kann, weiß ich leider gerade noch nicht so richtig)?

31.05.2007 23:56 | geändert: 31.05.2007 23:58

24 lava

P.S.

Also, irgendwie umwandeln muß ich die $j definitiv in etwas Javascriptfunktions-Taugliches. Denn ich möchte sie an eine Javascript-Funktion stopani(j) als Argument j übergeben.....

Ob stopani(j) dann ein Javascript-Array braucht oder auch direkt das PHP-Array mit <?PHP ?> auslesen kann, ist dann eine separate Frage.

--- Geht vielleicht wirklich sowas wie stopani(<?PHP echo"$j"; ?>) bei Zahlenwerten????

01.06.2007 00:11 | geändert: 01.06.2007 00:28

25 Jörg Kruse

Geht vielleicht wirklich sowas wie stopani(<?PHP echo"$j"; ?>) bei Zahlenwerten????

Ja, das sollte gehen, in diesem Fall würde ich allerdings die Anführungszeiche weglassen :)

stopani(<?PHP echo $j ?>)

01.06.2007 00:16

26 lava

Geht leider nicht. Das gibt einen

 unexpected T_STRING, expecting ',' or ';' 
in der entsprechenden Zeile :(

Ich nehme mal an, der T_STRING ist das $j ?

Auch folgendes geht leider NICHT :

<?PHP
echo "onClick=\"javascript:stopani(";
echo $j;
echo " )\" ";
?>


Sind PHP-Variablen eigentlich global? D.h. wenn ich sie in ein Include-File packen würde und von beiden Dateien includieren lasse, behält sie dann dazwischen ihren Wert bei? Wenn ja, wäre auch das evtl. eine Lösung, dann müßte ich sie ja nicht übergeben....

01.06.2007 00:26 | geändert: 01.06.2007 00:36

27 Jörg Kruse

In derselbe Zeile? Eigentlich sollte es hier ohne ";" gehen, aber du kannst es ja auch nochmal mit probieren:

stopani(<?PHP echo $j; ?>)

Oft befindet sich der auslösende Fehler aber auch ein oder mehrere Zeilen dadrüber.

Nachtrag:
... den hab ich jetzt erst entdeckt, kam die Fehlermeldung auch dort:

<?PHP echo "onClick=\"javascript:stopani(".$j.") \" "; ?>

01.06.2007 00:41 | geändert: 01.06.2007 00:42

28 lava

Gab leider alles dieselbe Fehlermeldung!

01.06.2007 00:49

29 Jörg Kruse

Dann wird sich oberhalb im PHP-Code ein Syntaxfehler befinden, der an dieser Stelle die Fehlermeldung auslöst

01.06.2007 07:41 | geändert: 01.06.2007 07:41

30 lava

Hallo, ich habe nun nach längerer Pause das alte Projekt wieder aufgegriffen und war froh, es letztlich ohne Frames auf dem IE zum Laufen gebracht zu haben. Zwar hat mir ein Freund mir jetzt gesagt, daß es mit dem Scrollen sowieso alles Mist sei und ich das nur mit div.position regeln solle (das nehme ich mir dann als nächstes vor), aber ich würde trotzdem gerne noch wissen, was an meinem Code
(www.bdsm-fantasies.de/lava/copy2.php )
so verkehrt ist, daß er im Firefox nicht funktioniert.

Ich habe ein div auf einer insgesamt scrollenden Seite, und in dem div steht ein <a href=..>Schließen</a>, konkret:

<div id='big'>
  <a href="copy2.php?pre=200"><font color=yellow>Schlie&szlig;en</font></a><br/>
<img src=PicGall/gummi2.jpg> </div>

und dieses "Schließen" ist im Firefox gar nicht anklickbar. Wird also irgendwie nicht als Link erkannt (warum???) und irgendwie doch (denn immerhin wird es unterstrichen angezeigt, was es vor dem Umrunden mit <a href=...> </a> nicht war, also es wird eigentlich Anklickbarkeit gemäß der browserüblichen text-decoration:underline für Links angezeigt.

Der gesamte Code liegt in nur 2 Dateien: www.bdsm-fantasies.de/lava/copy2.php und www.bdsm-fantasies.de/lava/myscript2.js

27.06.2008 14:24 | geändert: 27.06.2008 14:25