Coder Bear
Grünschnabel
Hallo bräuchte mal etwas Hilfe bei einem PHP-Formular ohne Seiten neu laden.
Zu der Seite sie ist auf PHP-Basis, Inhalte der Seite werden über eine JavaScript Funktion nachgeladen. Ich will Formulare einbinden für die Eingabe von daten für eine Datenbank das ohne neu laden der Seite erfordert.
Navigation
Inhalt
Formula von nach werner-zenk.de
Das Formular funktioniert lässt sich nur nicht in meine Seite einbinden.
Beziehungsweise es werden die eingegeben Daten nicht übergeben.
Danke für die Hilfe
Zu der Seite sie ist auf PHP-Basis, Inhalte der Seite werden über eine JavaScript Funktion nachgeladen. Ich will Formulare einbinden für die Eingabe von daten für eine Datenbank das ohne neu laden der Seite erfordert.
Navigation
HTML:
<div id="navi_gross">
<ul class="navi_gross_1">
<li><a href="#" onclick="inhalt(1)">Start</a></li>
</ul>
</div>
Inhalt
HTML:
<div id="Content" style="background-image: url('img/Zeichenfläche3.png');">
<div id="schrift_1" class="schrift_gross">
<img src="img/schriftgrosse/Schriftgroesse.jpg" class="schrift_gross">
</div>
<div id="schrift_2" class="schrift_normal">
<img src="img/schriftgrosse/Schriftgroesse.jpg" class="schrift_normal">
</div>
<div id="schrift_3" class="schrift_klein">
<img src="img/schriftgrosse/Schriftgroesse.jpg" class="schrift_klein">
</div>
<div class="kasten">
<div id=""></div>
<div class="haupt_text">
<noscript>
<p class="center">
<strong><strong>Bitte aktiviere Sie Javascript um diese Seite zu nutzen </strong></strong>
</p>
</noscript>
<h1 class="center" style="color: #000;">
Herzlich Willkommen auf der Website<br>
"Test"
</h1>
<br>
<br>
<p> </p>
<h2>
Test.<br>
Test.<br>
</h2>
<br>
<br>
<br>
<div>
<p class="block"></p>
<br>
<span class="gross_text">
<br>
<br>
<p>
Test text
</p>
</div>
<p> </p>
<br>
</div>
</div>
</div>
PHP:
<?php
// Wurden Daten über 'POST' gesendet
if ($_SERVER["REQUEST_METHOD"] == "POST"):
// Dieses Array speichert die Fehleingaben
$Fehler = ["name"=>"", "keyWort"=>""];
// Fehleingaben überprüfen
if( $_POST["name"] != "Admin"){
$Fehler["name"] = 'Der Name ist leider falsch!' ;
$Fehler["keyWort"] = 'Der key ist leider falsch!' ;
}
if($_POST["keyWort"] != "test"){
$Fehler["name"] = 'Der Name ist leider falsch!' ;
$Fehler["keyWort"] = 'Der key ist leider falsch!' ;
}
// Sind Fehleingaben vorhanden?
if (strlen(implode($Fehler)) > 0):
// Ja
// Rückgabe an JavaScript
// Das Array mit: json_encode() serialisieren
echo json_encode($Fehler);
else:
// Nein
// Rückgabe an JavaScript
echo 'OK';
// Die Daten nun als E-Mail senden, in einer
// Datei oder Datenbank speichern.
endif;
exit; // Wichtig, ansonsten wird der HTML-Körper gesendet!
endif;
?>
CSS:
<style>
body {
font-family: Arial, Sans-Serif;
background-color: Whitesmoke;
}
var {
color: Red;
}
</style>
HTML:
<form>
<legend>
<h4>Anmeldung</h4>
</legend>
<p>
<label>Name: <var>*</var><br>
<input type="text" name="name"></label>
</p>
<p>
<label>Passwort: <var>*</var><br>
<input type="text" name="keyWort"></label>
</p>
<p>
<input type="button" name="senden" value="Anmelden">
</p>
</form>
Javascript:
// Das XMLHttpRequest-Objekt setzen
var xhr = new XMLHttpRequest();
// Diese Funktion beim laden der Seite starten
window.addEventListener("load", function() {
// Dem HTML-Button (name="senden") den Event-Handler: "click" zuweisen,
// dieser ruft dann (beim klicken) die Funktion: eintragen() auf.
document.getElementsByName("senden")[0].addEventListener("click", eintragen);
});
function eintragen() {
// Die Formulardaten holen
var daten = new FormData(document.getElementsByTagName("form")[0]);
// Die aktuelle Datei über dem HTTP-Stream öffnen
xhr.open("POST", document.URL, true);
// Die Formulardaten senden
xhr.send(daten);
// Auf eine Antwort warten
xhr.onreadystatechange = function() {
// Daten werden (vom PHP-Script) empfangen
if (xhr.readyState == 4 &&
xhr.status == 200) {
// Den Inhalt von 'responseText' überprüfen
if (xhr.responseText == "OK") {
// Eine Meldung ausgeben
document.getElementsByTagName("form")[0].innerHTML = 'Die Daten wurden gesendet.';
} else {
// Die Daten in einzelne Objekte zerlegen
var objekt = JSON.parse(xhr.responseText);
// Die HTML-Elemente (var) mit den Daten befüllen
document.getElementsByTagName("var")[0].innerHTML = objekt.name;
document.getElementsByTagName("var")[1].innerHTML = objekt.keyWort;
//document.getElementsByTagName("var")[2].innerHTML = objekt.txt;
}
}
}
}
Das Formular funktioniert lässt sich nur nicht in meine Seite einbinden.
Beziehungsweise es werden die eingegeben Daten nicht übergeben.
Danke für die Hilfe
Zuletzt bearbeitet von einem Moderator: