Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/02/2010, 22:58
luisRR
 
Fecha de Ingreso: febrero-2010
Mensajes: 3
Antigüedad: 14 años, 10 meses
Puntos: 0
Sonrisa Ajax No Procesa Informacion

Que tal , estoy desarrollando una aplicacion de prueba en Ajax para implementarla en una web de una empresa, el problema es que es la primera vez que uso Ajax(y javascript a fondo), y tengo problemas para hacerlo trabajar.

Lo estoy haciendo en php, y esta basado en 3 archivos, el pruebaAjax.php que es la interfaz con el usuario, el jsAjax.js q es el archivo que contiene el codigo Javascript y el respuestaAjax.php que es donde se procesa la peticion para luego devolverla a la primera. Juntos deberian hacer un sistema de confirmacion de identificacion de usuario en el sistema, el usuario pone su nombre y clave en la interfaz, y se le devuelve un valor de correcto o incorrecto a un input de tipo hidden, el que luego sera evaluado por una funcion javascript para saber si el usuario se logeo de manera exitosa.

El sistema esta enviando la informacion por medio del script, pero lo que no esta pasando es que en el respuestaAjax se genere la informacion que necesito que llegue al pruebaAjax, y debido a esto no se sabe si se autentico o no.(he revisado que haiga congruencia con las columnas de la BD, y por ahi todo esta ok)

He probado leyendo tutoriales hasta el cansancio los cuales me han ayudado a crear el ajax y a tener una nocion de como se devuelve la informacion con php.
Una de las webs principales ha sido la de w3schools que tiene un ejemplo en php, pero aun siguiendo sus instrucciones no logro hacer que la mia funcione.

Si pudieran ayudarme les estaria muy agradecido

pruebaAjax.php

Código PHP:
<?
include('conecta.php');
?>

<html>
<head>
   <title>Usando js</title>

<script type="text/javascript" src="jsAjax.js">
</script>
</head>

<body>


Nombre de operador:
<select name="nombreOperador" id="nombreOperador" onChange="habilitaEnvio(this)">
<option value=0>Seleccione opcion</option>

<?
    
try
   {
   
$con= new ClsConexion();
   
$sql="SELECT * FROM operadores";
   
$record=$con->ejecutar($sql);
   while(
$row=$con->sacafila($record))
    { echo 
'<option value='.$row["id"].'>'.$row["nombre"].'</option>';}
   }
   catch(
Exception $ex)
   {
     echo 
$ex;
   }
?>
</select>
</br>
Clave: <input type="password" name="claveOperador" disabled="true" id="claveOperador"  />
<input type="submit" name="submitOperador" id="submitOperador" disabled="true" onClick="procesaOperador();verificaEstado()" />


<span id=operadorConfirmado></span>
<input type="hidden" name="claveConfirmada" id="claveConfirmada" />


</body>
</html>
jsAjax.js

Código:
function creaAjax()	{

var httpvar=false;
 	try {
 		httpvar = new ActiveXObject("Msxml2.XMLHTTP");
 	} catch (e) {
 		try {
 			httpvar = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
 			httpvar = false;
 		}
  	}

	if (!httpvar && typeof XMLHttpRequest!='undefined') {
 		httpvar = new XMLHttpRequest();
	}
	return httpvar;


}

function procesaOperador()
{

     var cod=document.getElementById('nombreOperador').options[document.getElementById('nombreOperador').selectedIndex].value;
     var cla=document.getElementById('claveOperador').value;
     var parametros="codigo="+cod+"&clave="+cla;
     var xmlhttp=creaAjax();

      var url="respuestaAjax.php";
      xmlhttp.open("POST",url,true);
      xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xmlhttp.onreadystatechange=function()
      {
        if(xmlhttp.readyState==4)
        {
         document.getElementById('claveConfirmada').value=xmlhttp.responseText;
        }
      }

      xmlhttp.send(parametros);

}


function verificaEstado()
{ var confirmacion="";
  if(document.getElementById('claveConfirmada').value=="correcto")
  {
    confirmacion="Usuario Autorizado";
    document.getElementById('claveOperador').disabled=true;
    document.getElementById('submitOperador').disabled=true;
  }
  else if(document.getElementById('claveConfirmada').value=="incorrecto")
  {
    confirmacion="Clave Incorrecta";
  }

  document.getElementById('operadorConfirmado').innerHTML=confirmacion;
}



function habilitaEnvio(sel)
{
     var valor=sel.options[sel.selectedIndex].value;

    if(valor!=0)
  {
   document.getElementById('claveOperador').disabled=false;
   document.getElementById('submitOperador').disabled=false;
  }
  else
  {
  document.getElementById('claveOperador').disabled=true;
   document.getElementById('submitOperador').disabled=true;
  }
}
respuestaAjax.php

Código PHP:
<?php

include('conecta.php');

$codigo=$_POST["codigo"];
$clave=$_POST["clave"];


$con= new ClsConexion();
$query="SELECT * FROM operadores";
$record=$con->ejecutar($query);

while(
$row=$con->sacafila($record))
    {
$array[$row['id']]=$row['clave'];}


if(
$clave==$array[$codigo])
{
$mensaje="correcto";}
else
{
$mensaje="incorrecto";}

echo 
$mensaje;

?>