Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/06/2009, 05:12
manumar
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 15 años, 9 meses
Puntos: 3
Pregunta Form en ajax (ayudanovato, desesperao y rayado xD)

hola, bueno vamos a ver si me conseguis decir el porque de este royo que no entiendo porque me pasa...tengo un form con 2 campos para login...otro archivo .php q procesa y el .js...
Cuando acierta en los datos te redirecciona a otro lao, cuando no quiero cambiar las clases..lo tipico xD
Pues bien, os enseño mi codigo porque resulta q para q funcione bien tengo q cambiar el contenido del form, por la cara ya os digo, si no lko cambio no funciona

Código PHP:
<div id="login"><form id="login-f" onSubmit="envlogin()"><label>Correo:</label><input type="text" id="correo" class="input1"><br/><br/>
<
label>Contrase&ntilde;a:</label><input type="password" id="pass" class="input1">
<
button id="botonEnviar" onClick="envlogin()" type="submit"></button>
</
form>
<
span id="envloginImg"><img src="temas/original/iconos/loading.gif">Enviando...</span>
</
div
.js
Código javascript:
Ver original
  1. onload=function() {
  2. correo=document.getElementById("correo");
  3. pass=document.getElementById("pass");
  4. form=document.getElementById("login-f");
  5. Cform=form.innerHTML;
  6. envio=document.getElementById("envloginImg");
  7. urlp="funciones/proc-login.php";
  8. }
  9.  
  10. function nuevoAjax()
  11. {
  12.     var xmlhttp=false;
  13.     try
  14.     {
  15.         // No IE
  16.         xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  17.     }
  18.     catch(e)
  19.     {
  20.         try
  21.         {
  22.             // IE
  23.             xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  24.         }
  25.         catch(E) { xmlhttp=false; }
  26.     }
  27.     if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }
  28.     return xmlhttp;
  29. }
  30.  
  31. function envlogin() {
  32.  
  33. envio.style.display="block";
  34. mail=correo.value;
  35. passw=pass.value;
  36. form.style.display="none";
  37.  
  38. var ajax=nuevoAjax();
  39.         ajax.open("POST", urlp, true);
  40.         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  41.         ajax.send("correo="+mail+"&pass="+passw);
  42.        
  43.         ajax.onreadystatechange=function()
  44.         {
  45.             if (ajax.readyState==4)
  46.             {
  47.                 envio.style.display="none";
  48.                 var respuesta=ajax.responseText;
  49.                 if(respuesta=="OK")    {
  50.                 window.location.href="?sitio=panel";
  51.                 }                
  52.                 else {
  53.                 form.style.visibility="visible";
  54.                 if(respuesta=="correo") {correo.className="error";}
  55.                 else {pass.className="error";}
  56.                
  57.                
  58.                 }
  59.             }
  60.         }
  61. }

procesador..
Código PHP:
<?php
session_start
();
if (
$_POST) {
include (
'BD.php');
foreach(
$_POST as $clave => $valor) $$clave=addslashes(trim(utf8_decode($valor)));
$mail=mysql_escape_string($correo);
$passw=md5($pass);
$usu=mysql_query("SELECT `ID`,`Mail`,`Rango`, `Pass` FROM `Usuarios` WHERE `Usuarios`.`Mail`='$mail' LIMIT 1");
if (
$Dusu=mysql_fetch_array($usu)) {
if (
$passw==$Dusu[Pass]) {
$_SESSION[ID]=$Dusu[ID];
$_SESSION[Correo]=$Dusu[Mail];
$_SESSION[Rango]=$Dusu[Rango];
echo 
'OK';
}
else { echo 
'pass'; }
}
else { echo 
'correo';}
}
?>
Resulta q cuando dejo el mismo contenido del form, la redireccion se hace mal, se hace como un reload..total q es muy raro...
Posiblemente sea uan tonteria, pero es q me cansao de buscar. Ademas, este es mi primer script con Ajax, y bueno...alomejor estoy comentiendo fallos.

Por favor orientenme

gracias y salu2