Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Validacion Ajax

Estas en el tema de Validacion Ajax en el foro de Frameworks JS en Foros del Web. Hola a todos. Estoy intentando realizar una validación de un campo unico utilizando Ajax, lo que quiero basicamente es que si ya existe un registro ...
  #1 (permalink)  
Antiguo 08/11/2007, 14:11
 
Fecha de Ingreso: noviembre-2007
Ubicación: Guadalajara
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Validacion Ajax

Hola a todos.

Estoy intentando realizar una validación de un campo unico utilizando Ajax, lo que quiero basicamente es que si ya existe un registro en la base de datos de dicho campo no me deje continuar con el proceso de guardar.

No me esta funcionando y el formulario detodos modos se envia.

Mi codigo es el siguiente:

html:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pruebas</title>
</head>
<script type="text/javascript" src="js/rfc.js"></script>
<body>

<form name="EditView" action="" method="post" onsubmit="return rfc(this);">

<input type="text" name="rfc_c" value="" />

<input type="submit" value="envia" name="submit"/>

<div id="result">&nbsp;</div>

</form>
</body>
</html>


js:

function nuevoAjax(){

/*Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por lo que se puede copiar tal como esta aqui */

var xmlhttp=false;
try {
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
// Creacion del objeto AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch(E) {
xmlhttp=false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp=new XMLHttpRequest();
}
return xmlhttp;
}

function rfc(edit){

var divMnj = document.getElementById('result');
var rfc = document.EditView.rfc_c.value;

ajax=nuevoAjax();

//divMnj.innerHTML = '<p style="text-align:center;"><img src="modules/Leads/imagen/loading.gif"/></p>';

ajax.open("GET", "valida.php?rfc="+rfc, true);

ajax.onreadystatechange=function() {
if (ajax.readyState==4){

var temp = ajax.responseText;

alert(temp);

if(temp == "si"){
divMnj.innerHTML = ajax.responseText;
alert("El RFC ya existe en el sistema");
document.EditView.rfc_c.focus();
return false;
}else{
alert("OK");
return true;
}
}
}
ajax.send(null);
}


php:

<?php

$rfc = $_GET['rfc'];

$conexion = mysql_connect('localhost', 'root', 'fercho') or die ('No pudo conectarse : ' . mysql_error());

mysql_select_db('crm_gpi', $conexion) or die('No pudo seleccionarse la BD.');


$sql = "SELECT count(*) AS total FROM leads_cstm WHERE rfc_c='".$rfc."'";

$result = mysql_query($sql) or die ('La consulta fall&oacute;: ' . mysql_error());

$row = mysql_result($result, 0, 'total');

if ($row['total']>0) {

echo 'si';

}else{

echo 'no';

}

?>
  #2 (permalink)  
Antiguo 08/11/2007, 22:31
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Re: Validacion Ajax

Te recomiendo que para testear tu aplicación utilices Firefox con el plug-in Firebug instalado. De esta forma podrás realizar un seguimiento en detalle de lo que sucede con la llamada asincrónica y si el PHP retorna lo que se espera o en realidad la salida se produce por un die(). Tambien puedes probar el script PHP por separado, enviandole el parámetro requerido por GET y verificando que la salida sea correcta.

Ya con el error acotado o en concreto que se produce podrás corregirlo o podremos ayudarte mejor.

Saludos.
__________________
R4DS en español | R4DS en inglés

Última edición por zaqpz; 08/11/2007 a las 22:39
  #3 (permalink)  
Antiguo 12/11/2007, 10:44
 
Fecha de Ingreso: noviembre-2007
Ubicación: Guadalajara
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Validacion Ajax

Hola zaqpz, gracias por los consejos, de hecho antes de poner mi post aquí hice todo lo que mencionaste y por supuesto siempre utilizo FIREFOX para hacer pruebas.

Lo que trato hacer aquí es una simplemente una validación donde el RFC es unico y de hecho la PHP me regresa lo que quiero, mi problema radica en que la función de JavaScript no me regresa el falso que yo necesito para no dejar continuar al usuario en caso de que el RFC ya este guardado en el sistema, aclarando por supuesto que el IF que utilizo para hacer la validación del "ajax.responseText" si entra y lo compruebo con los alerts.

Espero me puedas seguir aconsejando con otra solución a este problema.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:01.