Forum: PC-Programmierung PHP - kein Umleiten auf leere Browserseite nach Javascript alert


von Martin M. (ats3788)


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

von Peter II (Gast)


Lesenswert?

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

hä?

Was soll denn sonst passieren, die lieferst mit dem PHP keine Seite aus, 
was soll denn der Browser da anzeigen?

von Planlos (Gast)


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.

von Johannes O. (jojo_2)


Lesenswert?

Oder lad die Seite mit dem alert doch einfach in einem (nicht 
sichtbaren) iframe.
Falls dir das mit dem AJAX zu aufwändig ist und du keine hässlichen 
Lösungen scheust ;-)

von Pandur S. (jetztnicht)


Lesenswert?

dann mach doch eine nicht-leere Seite hin. Mit

echo("<html><head></head><body><h1>Hallo</h1></body></html>");

Mit php werden Seiten erzeugt.

: Bearbeitet durch User
von Martin M. (ats3788)


Lesenswert?

Danke für die Antworten

Ja das stimmt ich habe nur
ein ganz wenig bis gar keine Ahnung von php.

Aber mal sehen ob ich das hinbekomme

von Martin M. (ats3788)


Lesenswert?

Oder Doch

Dein Ansatz macht Sinn für mich einfach eine HLML Seite Generieren mit 
einem
Button auf die Ursprungs Seite.

Nochmal Danke .-)

von Pandur S. (jetztnicht)


Lesenswert?

Ein button auf eine Seite (hier index.html, mit post : press=1) :

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>");

: Bearbeitet durch User
von Daniel A. (daniel-a)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.