Hallo,
ich habe ein Loginsystem ohne Ajax programmiert und möchte dieses nun mit hilfe von Ajax verbessern.
zunächst einmal meine index.php
login_ajax.js
Ich möchte die Daten per POST und nicht per GET übertragen, da ich die übermittelten Daten nicht in der URL stehen haben will.
Zunächsteinmal passiert folgendes:
Wenn ich ein leeres Formular abschicke steht für ca 1 sek indem Div box1 : Formular nicht komplett ausgefüllt! und verschwindet dann gleich wieder wieso ?
Und die Websiteadresse verändert sich zu : index.php?user=&passwort=
Wenn ich ein richtig ausgefülltes Formular abschicke sieht die URL so aus:
index.php?user=mo1k&passwort=test
(edit: die übergabe stand in der url weil ich im form tag method="post" vergessen hatte, es funktioniert aber trozdem noch nicht )
und in dem Div box1 steht nichts ( wenn der login erfolgreich war gebe ich folgendes aus:
echo "success "; )
an der login.php kann es nicht liegen, da ich diese bereist ohne ajax getestet habe und sie hat einwandfrei funktioniert.
Die Funktion zur Erzeugung des resObjekt habe ich aus einem Tutorial, diese Funktion verstehe ich auch , ich weis nur nicht wozu am schluss noch folgende Zeilen stehen:
Ich hätte diese Zeilen weggelassen und in der Funktion sndReq() noch folgende Zeile hinzugefügt:
Ich hoffe mir kann jemand helfen.
Mo1k
ich habe ein Loginsystem ohne Ajax programmiert und möchte dieses nun mit hilfe von Ajax verbessern.
zunächst einmal meine index.php
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<style type="text/css">
#login { position:relative; width:150px; height:150px; z-index:1; background-color:#ddf; margin-left: auto; margin-right: auto; border:1px solid #888; align:top}
#box1 { position:absolute; top:5px; right:150px; width:200px; height:100px; z-index:2; background-color:#ddf; border:1px solid #888; align:top}
</style>
<script language="JavaScript" src="login/login_ajax.js"></script>
</head>
<body>
<div align="center" id="login">
<div id="box1">
</div>
<form name="login">
User/email:<br>
<input class="input1" type="text" name="user"><br>Password:<br>
<input type="password" class="input1" name="passwort"><br>
<input type="submit" value="login" alt="Login" onclick="sndReq()" style="width:150px">
</form>
<a href="">Passwort vergessen ?</a>
</div>
</body>
</html>
login_ajax.js
Code:
function erzXMLHttpRequestObject(){
var resObjekt = null;
try {
resObjekt = new XMLHttpRequest();
}
catch(Error){
try {
resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(Error){
try {
resObjekt = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(Error){
alert(
"Erzeugung des XMLHttpRequest-Objekts ist nicht möglich");
}
}
}
return resObjekt;
}
function ErzeugeAJAXObjekt(){
this.erzXMLHttpRequestObject = erzXMLHttpRequestObject;
}
o = new ErzeugeAJAXObjekt();
resObjekt = o.erzXMLHttpRequestObject();
function sndReq() {
if(document.login.user.value !="" || document.login.passwort.value !=""){
content = document.getElementById(user).value;
content2 = document.getElementById(passwort).value;
postParam = 'data1=' + encodeURIComponent(content) + '&data2=' + encodeURIComponent(content2) ;
resObjekt.open('post', 'login.php' ,true);
resObjekt.onreadystatechange = handleResponse;
resObjekt.send(postParam);
}
else {
document.getElementById("box1").innerHTML = "Formular nicht komplett ausgefüllt!";
}
}
function handleResponse() {
if(resObjekt.readyState == 4){
document.getElementById("box1").innerHTML = resObjekt.responseText;
}
}
Ich möchte die Daten per POST und nicht per GET übertragen, da ich die übermittelten Daten nicht in der URL stehen haben will.
Zunächsteinmal passiert folgendes:
Wenn ich ein leeres Formular abschicke steht für ca 1 sek indem Div box1 : Formular nicht komplett ausgefüllt! und verschwindet dann gleich wieder wieso ?
Und die Websiteadresse verändert sich zu : index.php?user=&passwort=
Wenn ich ein richtig ausgefülltes Formular abschicke sieht die URL so aus:
index.php?user=mo1k&passwort=test
(edit: die übergabe stand in der url weil ich im form tag method="post" vergessen hatte, es funktioniert aber trozdem noch nicht )
und in dem Div box1 steht nichts ( wenn der login erfolgreich war gebe ich folgendes aus:
echo "success "; )
an der login.php kann es nicht liegen, da ich diese bereist ohne ajax getestet habe und sie hat einwandfrei funktioniert.
Die Funktion zur Erzeugung des resObjekt habe ich aus einem Tutorial, diese Funktion verstehe ich auch , ich weis nur nicht wozu am schluss noch folgende Zeilen stehen:
Code:
function ErzeugeAJAXObjekt(){
this.erzXMLHttpRequestObject = erzXMLHttpRequestObject;
}
o = new ErzeugeAJAXObjekt();
resObjekt = o.erzXMLHttpRequestObject();
Ich hätte diese Zeilen weggelassen und in der Funktion sndReq() noch folgende Zeile hinzugefügt:
Code:
resObjekt = erzXMLHttpRequestObject();
Ich hoffe mir kann jemand helfen.
Mo1k
Zuletzt bearbeitet: