PHP - kein Umleiten auf leere Browserseite nach Javascript alert

OP #4360578
Lesenswert?

Hallo

Ich habe das ein einfaches script
was auch funktioniert.
Nur dummerweise wird nach der Message Box auf eine leere
Broswer Seite umgeleitet.


<?php

echo "<script>";
echo "alert('Hallo');";
echo "</script>";

exit();
?>

Meine Frage, kann ich einen PHP Code mit abschließenden
JS alert programmieren, ohne auf eine leere Browser Seite umgeleitet zu 
werden
Gast #4360691
Lesenswert?

Martin M. schrieb:
> Nur dummerweise wird nach der Message Box auf eine leere
> Broswer Seite umgeleitet.

Denkfehler.

Dein PHP-Code erzeugt (zuerst) eine leere Seite, die ein Script enthält 
um eine Messagebox anzuzeigen.

d.H. die Reihenfolge bzw. Ursache und Wirkung sind anders, als du dir 
das denkst.

Ohne jetzt Details zu kennen:
Um dein Problem zu lösen, müssest du mehr Programmlogik aus dem PHP ins 
Javascript verlagern, also Client-Seitig ausführen.
Dann AJAX/Websockets/... dazu, um Daten auszutauschen.
#4361233
Lesenswert?

1) Codetags im Forum nicht vergessen

2)

Martin M. schrieb:
> exit();

Das nach exit nichtsmehr Ausgeführt wird, und danach keine Ausgaben mehr 
kommen, ist dir klar?

3)

Oder D. schrieb:
> echo("
>   <html><head></head>
>   <body><form action="index.html" method="post">
>   <h1>Hallo</h1>
>   <button type="submit" name="press" value="1"> drueck hier</button>
>   </form></body></html>");

Soetwas kann man schöner schreiben, und so tun als ob echo eine Funktion 
wäre ist nicht notwendig. Sie Anfürungszeichen und Zeilenenden wurden 
auch nicht escapt...
Wie wäre es mit:
1
<?php
2
echo <<<EOF
3
<html>
4
  <head></head>
5
  <body>
6
    <form action="index.html" method="post">
7
      <h1>Hallo</h1>
8
      <button type="submit" name="press" value="1"> drueck hier</button>
9
    </form>
10
  </body>
11
</html>
12
EOF
13
?>

Oder noch besser:
1
<html>
2
  <head></head>
3
  <body>
4
    <form action="index.html" method="post">
5
      <h1>Hallo</h1>
6
      <button type="submit" name="press" value="1"> drueck hier</button>
7
    </form>
8
  </body>
9
</html>
Wobei hier Doctype und Titel noch fehlen.


Umleitungen gehen entweder mit Header:
1
<?php
2
  header("Location: wohinauchimmer.html"); // Muss vor der ersten Ausgabe sein, auch abstände, etc. vor "<?php" sind eine Ausgabe
3
?>
Oder per Meta refersh ("Weiss ich nichtmehr auswändig"), oder per 
JavaScript:
1
<script type="text/javascript">
2
  alert("Hallo");
3
  location.href = "wohinauchimmer.html";
4
</script>

In diesem fall ist die Methode mit der Form aber womöglich tatsächlich 
die Beste.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren