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"> </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ó: ' . mysql_error());
$row = mysql_result($result, 0, 'total');
if ($row['total']>0) {
echo 'si';
}else{
echo 'no';
}
?>