15/10/2009, 15:07
|
| | Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes Puntos: 0 | |
Respuesta: Como visualizar un formulario Pero ahora tengo otro problema este formulario que se visualiza me debe permitir el acceso, lo estoy haciendo con ayax, cuando escribo en la primera casilla de usuario al pasar a la otra casilla me debe decir si el usuario esta registrado en la base de datos pero no me sale esto sino un mensaje de error les dejo el codigo donde sale el erro y el codigo del formulario y tambien si me explican q funcion tiene el span desde ya mucha gracias.
codigo del formulario: <div id="bloquear"></div>
<div id="iniciosesion" class="oculto">
<form id="fingreso" name="form1" method="post" action="clases/validar.php?validationType=php">
<fieldset>
<legend>Control de Acceso</legend>
<div class="centrarText">
<img src="imagenes/iniciosecion.gif" width="116" height="105" align="right" />
<table width="220" border="0">
<tr>
<td width="69">Usuario </td>
<td width="141">
<input type="text" name="txtusuario" id="txtusuario"
onblur="validate(this.value, this.id)"
value="<?php echo $_SESSION['values']['txtusuario'] ?>" />
<span id="txtUsernameFailed"
class="<?php echo $_SESSION['errors']['txtusuario'] ?>">
Este nombre de usuario no existe, o campo nombre de usuario vacío.
</span>
</td>
</tr>
<tr>
<td>Contraseña</td>
<td>
<input type="password" name="txtclave" id="txtclave"
onblur="validate(this.value, this.id)"
value="<?php echo $_SESSION['values']['txtclave'] ?>" />
<span id="txtNameFailed"
class="<?php echo $_SESSION['errors']['txtclave'] ?>">
Por favor escribe tu clave.
</span>
</td>
</tr>
</table>
</div>
<p>
<label >
<input name="button" type="submit" id="button" value="Ingresar" />
</label>
<a id="cerrar" href="#"><img src="imagenes/remove.png" width="32" height="32" align="right" /></a></p>
</fieldset>
</form>
</div>
codigo del motor de ajax lo pondre de rojo en la parte q sale el error:
// contiene una instancia de XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
// contiene la dirección del archivo de lado del servidor
var serverAddress = "validar.php";
// cuando se configura como true, muestra mensajes de error detallados
var showErrors = true;
// inicializa la cache para las peticiones de validación
var cache = new Array();
// crea una instancia XMLHttpRequest
function createXmlHttpRequestObject()
{
// almacenará la referencia al objeto XMLHttpRequest
var xmlHttp;
// esto debe funcionar para todos los navegadores excepto IE6 y más antiguos
try
{
// intenta crear el objeto XMLHttpRequest
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
// asume IE6 o más antiguo
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
// prueba cada id hasta que uno funciona
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
// prueba a crear el objeto XMLHttpRequest
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {} // ignora error potencial
}
}
// devuelve el objeto creado o muestra un mensaje de error
if (!xmlHttp)
displayError("Error al crear el objeto XMLHttpRequest.");
else
return xmlHttp;
}
// función que muestra un mensaje de error
function displayError($message)
{
// ignora errores si showErrors es falso
if (showErrors)
{
// devuelve error mostrando Off
showErrors = false;
// muestra mensaje error
alert("Error encontrado: \n" + $message);
// reintenta validación después de 10 segundos
setTimeout("validate();", 10000);
}
}
// la función maneja la validación para todos los campos del formulario
function validate(inputValue, fieldID)
{
// sólo continúa si xmlHttp no está vacío
if (xmlHttp)
{
// si recibimos parámetros no-null, los añadimos al cache en el
// formulario del string de petición a enviar al servidor para validación
if (fieldID)
{
// codifica valores para añadirlos de modo seguro a una petición string HTTP
inputValue = encodeURIComponent(inputValue);
fieldID = encodeURIComponent(fieldID);
// add the values to the queue
cache.push("inputValue=" + inputValue + "&fieldID=" + fieldID);
}
// prueba a conectar al servidor
try
{
// continúa sólo si el objeto MLHttpRequest no está completo
// y el cache no está vacío
if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
&& cache.length > 0)
{
// configura un nuevo set de parámetros desde el cache
var cacheEntry = cache.shift();
// hace una petición al servidor para validar los datos extraídos
xmlHttp.open("POST", serverAddress, true);
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(cacheEntry);
}
}
catch (e)
{
// muestra un error cuando falla la conexión al servidor
displayError(e.toString());
}
}
}
// función que maneja la respuesta HTTP
function handleRequestStateChange()
{
// cuando readyState es 4, leemos la respuesta del servidor
if (xmlHttp.readyState == 4)
{
// continúa sólo si el status HTTP es "OK"
if (xmlHttp.status == 200)
{
try
{
// lee la respuesta del servidor
readResponse();
}
catch(e)
{
// muestra mensaje de error
displayError(e.toString());
}
}
else
{
// muestra mensaje de error
displayError(xmlHttp.statusText);
}
}
}
// lee respuesta del servidor
function readResponse()
{
// recupera la respuesta del servidor
var response = xmlHttp.responseText;
// ¿error del servidor?
if (response.indexOf("ERRNO") >= 0
|| response.indexOf("error:") >= 0
|| response.length == 0)
throw(response.length == 0 ? "Server error." : response);
// obtiene la respuesta en formato XML(se asume que la respuesta es XML válido)
responseXml = xmlHttp.responseXML;
// obtiene el document element
xmlDoc = responseXml.documentElement;
result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
fieldID = xmlDoc.getElementsByTagName("fieldid")[0].firstChild.data;
// encuentra el elemento HTML que muestra el error
message = document.getElementById(fieldID + "Failed");
// muestra el error o bien oculta el error
message.className = (result == "0") ? "error" : "hidden";
// llama a validate() de nuevo, en caso que haya valores en la cache
setTimeout("validate();", 500);
}
// configura el focus en el primer campo del formulario
function setFocus()
{
document.getElementById("txtUsername").focus();
} |