Javascript Funktion mit PHP aufrufen

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?

Suboptimierer  10.10.2013, 11:36

Kann man nicht an der Eigenschaft location.href schrauben? Meine, sowas in Erinnerung zu haben.

0
Thilo1992 
Fragesteller
 10.10.2013, 12:03
@Suboptimierer

Stimmt, ich kann ja auch über die Funktion neu laden lassen.

0
einfachbesser  21.03.2019, 08:50
@Thilo1992

Wie funktioniert es denn jetzt? Ich muss auch eine Funktion über PHP aufrufen doch es funktioniert nicht..

0

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>
Thilo1992 
Fragesteller
 10.10.2013, 10:20

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.

0

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();"' ?> >
Woher ich das weiß:Berufserfahrung – Programmierer
Thilo1992 
Fragesteller
 10.10.2013, 11:16

Die Funktion wird im body-tag ganz am Anfang zwischen 2 divs aufgerufen.

0