Warum wird die Seite neu geladen wenn ich etwas eingebe?
Hallo!
Ich bin nicht wirklich erfahren in PHP und lerne indem ich neue Dinge ausprobiere, kopiere, etc. Nun habe ich folgenden Code für eine Passworteingabe:
<?php
$passwort = "test";
if (isset($_POST["go"])) {
if ($_POST["name"] == $passwort) {
} else {
}
} else {
?>
<form class="webflow-style-input" method="post">
<input class="popup_password" type="Password" required placeholder="Passwort eingeben" name="name">
<input class="popup_submit" type="Submit" name="go" value=">">
</form>
<?php } ?>
Wenn ich nun Text eingebe und ihn absende lädt die Seite neu. Weiß jemand wieso und wenn ja wie ich das abschalten kann?
3 Antworten
- dein code läuft auf dem server , der client bekommt nur die ausgabe .
- wenn du eine form sendest, schickst du die daten an die, in der form action angebenen URL, oder die aktuelle URL und dann gehts wieder bei punkt 1. weiter .
wie du im hintergrund daten verarbeitest haben die beiden anderen erklärt .
Beim Absenden eines Formulars wird die Seite standardmäßig neugeladen, ansonsten wird der PHP-Code nicht ausgeführt.
Wenn die Seite nicht neugeladen werden soll, ließe sich das PHP-Skript über einen asynchronen Ajax-Request (JavaScript) abrufen. Hier ein Beispiel mittels jQuery:
// wenn das Formular abgesendet wird
$("form").submit(function(e) {
// Neuladen unterdrücken
e.preventDefault();
// PHP-Datei „request.php“ über POST aufrufen
$.ajax({
type: "POST",
url: "request.php",
// Formulardaten einsetzen
data: $(this).serialize(),
success: function(data) {
// Rückgabe anzeigen
alert(data);
}
});
});
Siehe dazu: https://stackoverflow.com/a/6960586
PHP funktioniert serverseitig und muss deine Eingaben übermitteln und bearbeiten, und dann dir das Resultat anzuzeigen. Um das anders zu machen musst du dir Javascript/Ajax anschauen.