Der Martin: Verwirrung mit php include und javascript

Beitrag lesen

Hi,

ich habe eine Datei a.php und eine datei b.php.

in b.php habe ich unter anderem ein Javascript:

function test(v){
alert(v);
}

dass das zumindest bei diesem einfachen Beispiel besser eine reine Javascript-Datei sein könnte, hast du ja selbst schon erwähnt. Aber davon abgesehen ... okay.

In a.php habe ich die Anweisung

<?php include("b.php") ?>

Wo sind die öffnenden und schließenden script-Tags, also <script> und </script>? Irgendwo müssen sie notiert werden, entweder in der eingebundenen Datei (IMO sauberer) oder in der übergeordneten. Andernfalls hast du die Javascript-Funktionsdeklaration als Text mitten im HTML. Dann müsste sie als Klartext im Browser angezeigt werden, ist aber aus Javascript-Sicht nicht vorhanden.

<button onClick="test(1)">

Wenn ich aber den Button anklicke, bekomme ich von der Konsole: "reference error: test is not defined"

Woran liegt das?

Eine mögliche Erklärung habe ich dir genannt. Ob sie wirklich zutrifft, kann ich mangels genauerer Angaben nicht sagen.
Übrigens ist es allgemein üblich, Element- und Attributnamen konsequent klein zu schreiben, also onclick und nicht onClick.

Wenn ich das Javascript mit der Funktion test() in den Header von Datei a.php schreibe, kommt das Alert und keine Fehlermeldung.

Mit den script-Tags?

Ich dachte, eine mit include eingebundene Datei ist in jeder Hinsicht wie ein Teil der einbindenden Datei. Scheint aber nicht so zu sein.

Doch, exakt so ist es.

So long,
 Martin

--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy