Javascript Funktion mit PHP aufrufen
Hallo zusammen,
ich möchte eine Javascript Funktion mit PHP aufrufen, bisher hat das immer so geklappt:
echo "<script type='text/javascript'>funktion();</script>";
Aber das funktioniert einfach nicht mehr und ich weiß auch nicht warum. Kann man das auch irgendwie anders machen?
4 Antworten
ich weiß jetzt woran es liegt, ich lasse nach dem Aufruf der Funktion die Seite mit header("Location: url"); neu laden, aber das wartet nicht damit bis die Funktion ausgeführt wurde. Wie kann ich sicherstellen, dass die Seite erst wenn die Funktion ausgeführt wurde neu lädt?
Stimmt, ich kann ja auch über die Funktion neu laden lassen.
Wie funktioniert es denn jetzt? Ich muss auch eine Funktion über PHP aufrufen doch es funktioniert nicht..
Nur noch ne Info, das lag an den Anführungsstrichen.
Wenn du mit PHP Html mit Javascript ausgeben willst wäre das so richtig. Javascript Parameter innerhalb eines PHP-Echos werden auch mit einfachen Anführungsstrichen angegeben, die müssen deshalb mit \ escaped werden.
Bei dir wäre es:
echo '<script type="text/javascript">function();</script>';
Bei einem PHP-echo, dass HTML mit JavaScript ausgibt:
echo '<button onclick="document.getElementById("wichtigesdiv").style.visibility=\'visible\'">Klick mich!</button>';
Beachte den Wert Visible, da sind die Ausführungsstriche mit \ escaped.
php tag rundherum vergessen?
<?php
echo "<script type='text/javascript'>funktion();</script>";
?>
oder
<?php
...
?>
<script type="text/javascript">
funktion();
</script>
Nein, den php tag habe ich nicht vergessen, die Funktion soll nur in einem bestimmten Fall aufgerufen werden und ist deshalb in einer if-Abfrage.
Ich hatte da vorher noch eine andere javascript Funktion aufgerufen, diese hat funktioniert, aber die neue ruft er nicht auf. Er kommt nicht mal an diese Stelle, das habe ich mit einem alert() überprüft. In die if Bedingung kommt er aber rein, das habe ich geprüft nur innerhalb des script-Tags kommt er nicht.
Sollte eigentlich klappen. Zu welchem Zeitpunkt willst du die Funktion denn ausführen?
Du kannst einmal probieren, das body-Tag zu injizieren:
<body <?= 'OnLoad="javascript: funktion();"' ?> >
Die Funktion wird im body-tag ganz am Anfang zwischen 2 divs aufgerufen.
Kann man nicht an der Eigenschaft location.href schrauben? Meine, sowas in Erinnerung zu haben.