Avatar billede agurken Nybegynder
06. februar 2010 - 01:30 Der er 3 kommentarer og
1 løsning

AJAX log ind virker ikke i IE & Chrome

Hejsa

Jeg har lavet en lille log ind form, der validere med AJAX, så den skriver resultatet med det samme. Det virker fint i FF, men ikke i IE & Chrome... Nogen der har en løsning på det?

Index.php
<html>
<head>
<script src="login.js"></script>
</head>
<body>

<form action="#">
Username: <input type="text" id="user" /><br />
Password: <input type="password" id="pass" /><br />
<input type="submit" value="Check!" id="e" onClick="LoginTry(user.value, pass.value)" />
</form>
<p>Suggestions: <span id="LoginError"></span></p>

</body>
</html>


Login.js

var xmlhttp

function LoginTry(user, pass)
{
xmlhttp=xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support XMLHTTP!");
  return;
  }
var url="login.php";
url=url+"?user="+user;
url=url+"&pass="+pass;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
  {
      var result = xmlhttp.responseText.split("|");
      var Error = result[0];
      var Msg = result[1];
      if(Error==1)
      {
      //document.getElementById("txtHint").innerHTML="Korrekt!";
      window.location.href="index.php?login=1";
      }
      else{
      document.getElementById("LoginError").innerHTML=Msg;
      }
  //document.getElementById("txtHint").innerHTML=xmlhttp.responseText.split("|");
  }
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}


Login.php

<?php

$user = stripslashes($_GET['user']);
$pass = stripslashes($_GET['pass']);

$RightUser = "Niclas";
$RightPass = "1234";

if($user == $RightUser && $pass == $RightPass)
{
    $response = 1;
}
else
{
    $response = "0|Der skete en fejl!";
}


echo $response;
?>
Avatar billede tjens Nybegynder
06. februar 2010 - 08:42 #1
Det går galt her:
onClick="LoginTry(user.value, pass.value)"
Selv om et input har id=user, bliver user ikke til en variabel i globalt scope.

Skal være:
onClick="LoginTry(getElementById("user").value, getElementById("pass").value)"
Avatar billede agurken Nybegynder
06. februar 2010 - 14:53 #2
Tak for svaret men det virker heller ikke.

Det kan godt være lidt svært at forklare og ville ønske jeg kunne ligge det op på nettet så i kunne prøve det i praksis og se hvad der sker. Men kan ikke få fat i min host.

Edit/ Har fundet fejlen, hvis jeg undlod at lave det være i en <form> så virker det.. Wierd, men tak for svaret. Du får point ;)
Avatar billede a2p-dk Nybegynder
06. februar 2010 - 19:45 #3
Måske har IE submitted formen, så hvis du puttede onsubmit="return false" på <form> ville det nok også virke.
Avatar billede agurken Nybegynder
06. februar 2010 - 21:15 #4
Ja det virker også :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester