Javascript (JQuery) in PHP einbinden?
Schönen guten Abend liebe Community,
also ich kann mich seit Ostern dieses Jahres als glücklicher Programmieranfänger bezeichnen. So habe ich mit HTML und CSS begonnen und mich dann über Javascript(JQuery) und Python auch mal an PHP getraut, da ich meine Web-Developement 'Skills' auch mal im Back-End erweitern wollte. Jetzt stoße ich aber ziemlich früh an ein Problem, bei dem ich einfach nicht dahinter Blicke. Meine Intention ist es dabei Javascript (vorallen Dingen JQuery) in PHP mit einzubeziehen. Dafür habe ich mithilfe von XAMPP einen lokalen Server gehostet, auf dem auch alles wunderbar funktioniert. Selbst CSS habe ich nach etwas 'Mehrrerei' zum Laufen gebracht. Jetzt scheitert es aber leider an JQuery. Ich habe das bislang wie im Bild erkenntlich so versucht, meine JQuery Datei mit in den Ordner zu ziehen. Diese dann im Head Bereich zu verlinken und ein Javascript-Script zu erstellen. Wenn ich dort nun jedoch JQuery Code hineinschreibe, wird dieser im Browser nicht ausgeführt.
Nun meine Frage....warum funktioniert das Ganze nicht, bzw. was habe ich falsch gemacht?
Danke schon einmal für alle Antworten!
3 Antworten
Wirf einen Blick in die Fehlerkonsole deines Browsers. Falls die jQuery-Datei nicht geladen werden konnte, kann auch kein jQuery-Code ausgeführt werden.
Zudem würde ich empfehlen sowohl die Datei als auch deinen Code kurz vor dem </body> (also am Ende vom HTML-body) einzufügen, da er dort wirklich erst dann ausgeführt wird, wenn der HTML-Code komplett geladen wurde.
1) Der Doctype des HTML-Dokuments fehlt. Ergänze diesen, es ist ein must-have.
2) Dein Skript wird ausgeführt, bevor der body überhaupt gerendert wurde. Das h1-Element wird also nicht gefunden werden. Schau in die Browserkonsole - ein Fehler sollte dazu aufgeführt sein.
Um das Problem zu lösen, kannst du deinen Code entweder in einem Event Handler für das document.ready-Event aufführen (dazu gibt es noch andere Alternativen) oder du führst den script-Block erst vor dem schließenden body-Tag auf.
PHP hat in der Hinsicht keinen Einfluss. PHP schraubt auf seiner Seite lediglich ein (hoffentlich valides) HTML-Dokument zusammen, welches dann vom Server zum Browser geschickt wird. Danach ist PHP fertig und meldet sich erst wieder, wenn ein neuer Request an den Server abgeschickt wird. Somit ändert sich auch nichts im Vergleich, wie du es bisher ohne PHP gemacht hast.
Die Art, wie der Browser das empfangene Dokument rendert, ist entscheidend.
Versuch mal folgendes
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
oder setze ein "/" nach dem JQUERY namen.
Vielen Dank regex9 für deine Antwort, die tatsächlich die Lösung war.
Ich war tatsächlich bei beiden Fällen durch PHP eingeschüchtert (dachte dafür gibt es ganz andere Regeln) und andere User hatten auf anderen Foren das nahezu alle im Head Bereich verlinkt. Jedoch hat sich jetzt deine Erklärung als richtig bewahrheitet (ich muss auch dazu sagen, dass ich das bei meinen HTML Dokumenten auch immer in der Form vor Ende des Body Bereiches hatte, war aber aufgrund von PHP und den Usern in den Foren ziemlich verwirrt und verunsichert.