Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JavaScript-Funktionsaufruf geht nicht in php-includes...

Empfohlene Antworten

Veröffentlicht

Hi zusammen,

folgendes habe ich:

index.php


<head>
<script>
function test()
{
alert("bla");
}
</script>
</head>
<body>
<textarea name="area1" cols="20" rows="5" onKeyDown="test()"></textarea>
<?php
include('main.inc.php');
?>
</body>
[/php]

[b]main.inc.php[/b]

[php]
echo '<textarea name="area2" cols="20" rows="5" onKeyDown="test()"></textarea>';

Bei <textarea1> oben kommt der Alert, bei <textarea2> in der include-Datei kommt Script Error... warum?!?!?

Script Error... ?!?!?

Etwas genauer kannst du das nicht beschreiben? Kommt die Fehlermeldung vom Server oder Browser?

Wo hast du das getestet (Browser)? Bei mir geht das Beispiel ohne Fehler getestet im Firefox 1.5.0.4 und im IE 6.0.

<script type="text/javascript"> als erstes.

dann nutz mal firefox und gug nach was der dir in der Javascript-Konsole sagt.

da dein fehler nix mit PHP zu tun hat, empfehle ich einfach mal die ergebnis-HTML Datei zu speichern und nur damit zu arbeiten. Die lösung kannst du dann in den PHP übernehmen.

Etwas genauer kannst du das nicht beschreiben? Kommt die Fehlermeldung vom Server oder Browser?

Fehlermeldung kommt vom Browser...steht unten links in der Statusleiste "Script Error!" - das wars. Problem taucht auf in IE 6, FireFox 1.0.

.... und das es nix mit PHP zu tun glaube ich nicht; denn der Fehler taucht nur auf, wenn ich eine Datei include und in der Datei den alert() ausgeben will. Schiebe ich den ausgelagerten Teil direkt rein, ohne include, dann geht es.

Die HTML-Ausgabe des Skriptes sind in beiden Fällen gut aus (= fehlerfrei).

.... und das es nix mit PHP zu tun glaube ich nicht
Dann solltest du erstmal wirklich verstehen, was PHP eigentlich ist bzw. an der Stelle macht. Zu dem Zeitpunkt, wo der JavaScript Teil vom Browser ausgeführt worden ist hat der PHP Intepreter seine Arbeit längst abgeschlossen. Ob also der Output nun aus einem File kommt oder von PHP dynamisch erzeugt worden ist macht keinen Unterschied.

Der Fehler liegt im Dateiinhalt und wie der erzeugt wird ist das erstmal sekundär.

Die HTML-Ausgabe des Skriptes sind in beiden Fällen gut aus
Nämlich wie? Vergleiche die beiden Inhalte und du wirst garantiert einen Unterschied finden.

JavaScript-Ausgabe in der FireFox-Konsole ist "Test is not a function".

Ausgabe des HTML-Quelltextes (mit der include-Datei):


<html>

    <head>

        <title>Test</title>

        <script type="text/javascript">

            function test()

            {

            	alert("bla");

            }

        </script>

    </head>

    <body>

         //...

         <textarea name="text_form" rows="8" onKeyDown="test()">bla blubb hhuu</textarea>

    </body>

</html>

Also bei mir geht es problemlos (Firefox 1.5), aber du musst in der main.inc.php "<?PHP ... ?> hinzufügen, sonst parst es PHP nämlich nicht.

Oder aber du verzichtest auf das echo und die Quotes.

JavaScript-Ausgabe in der FireFox-Konsole ist "Test is not a function".
Und du bist dir sicher, dass Groß-Kleinschreibung in deinen Dateien genauso ist wie hier geschrieben? Diese Ausgabe lässt darauf schließen, dass du eine Funktion "Test" aufrufst, aber "test" deklariert hast.

test() war schon kleingeschrieben... nachdem ich Funktion mal test123() getauft habe, ging es... aber ich habe a) keine weitere Funktion mit dem Namen "test" und es wäre mir auch nicht bekannt, dass ich damit eine bestehende JavaScript-Funktion überschreibe.

Zumal das Problem auch nur kommt, wenn ich include... wenn ich nicht include, dann stört ihn auch nicht der Name "test" ... sehr strange...

Naja.. nun egal... heißt die Funktion halt andersch...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.