Hej,
jag försöker skapa en sida som kombinerar Ajax och PHP. När man skrivit in användarnamn och lösenord och trycker på knappen, ska losenordskoll.php kolla att användarnamn och lösenord är de rätta. Därefter ska ett av två meddelanden läsas in av ett script i HTML-filen, och skrivas ut i en div-tagg där.
Mitt problem är att värdena anvandarnamn och losenord aldrig förs över till PHP, så den skickar alltid tillbaka felmeddelandet. Vad är det jag har missat?
Såhär ser filerna ut:
HTML-fil:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Övning 6, uppgift 1</title>
<script type="text/javascript" src="asynkron.js"></script>
<script type="text/javascript">
function processaDokument(XHR)
{
var malElement = document.getElementById("texten");
malElement.innerHTML = XHR.responseText;
}
</script>
</head>
<body>
<div id="hej">
<form id="inmatning" method="get" enctype="" action="">
<table cellpadding="10">
<tr><td><h2>Inloggning</h2></td></tr>
<tr><td><input type="text" id="anvandarnamn" name="anvandarnamn" value="Användarnamn" /></td></tr>
<tr><td><input type="password" id="losenord" name="losenord" value="Lösenord" /></td></tr>
<tr><td align="right"><input type="button" value="Kolla" onclick="hamtaFranServern('losenordskoll.php', processaDokument);"
/></td></tr>
</table>
</form>
</div>
<div id="texten"></div>
</body>
</html>
PHP-fil:
<?php
//kontrollerar förväntade användarnamn och lösenord
if ( ($_GET['anvandarnamn'] == "per") && ($_GET['losenord'] == "1234") )
{
echo "Detta är ett superhemligt meddelande";
}
else {
echo "Du måste ange rätt användarnamn och lösenord";
}
?>
och asynkron.js, som refereras till:
function hamtaFranServern(url, handelsehanterare)
{
var XHRobjekt = null;
try {
XHRobjekt = new XMLHttpRequest(); // Firefox, Opera, ...
}
catch(err1) {
try {
XHRobjekt = new ActiveXObject("Microsoft.XMLHTTP");// Några IE ver
}
catch(err2) {
try {
XHRobjekt = new ActiveXObject("Msxml2.XMLHTTP"); // Några IE ver
}
catch(err3) {
XHRobjekt = false;
}//catch 3
}//catch 2
}//catch 1
if (XHRobjekt)
{
XHRobjekt.onreadystatechange = function()
{
if (XHRobjekt.readyState == 4)
{
handelsehanterare(XHRobjekt);
delete XHRobjekt; //städar upp
XHRobjekt = null; //referensen pekar nu på null
}//if
}//slut på den anonym funktion som körs när tillståndet i XHR ändras
XHRobjekt.open("GET", url);
XHRobjekt.send(null);
}//if objekt existerar
}//slut på funktionen hamtaFranServern()