Problemas al ingresar un formulario en una página web siguiendo código Ajax

Cordial Saludo
mi pregunta es la siguiente, tengo el siguiente formulario
quero validar las direcciones ips antes de ingresarlas a mi base de datos
<html">
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="330" border="1">
<tr>
<td height="481">
<p>Ip1
          <label for="Ip1"></label>
        <input type="text" name="Ip1" id="Ip1" />
      </p>
<p>Ip2
          <input type="text" name="Ip2" id="Ip2" />
        </p>
<p>Ip3
          <input type="text" name="Ip3" id="Ip3" />
        </p>
<p>Ip4
          <input type="text" name="Ip4" id="Ip4" />
        </p>
<p>Ip5
          <input type="text" name="Ip5" id="Ip5" />
      </p>
</td>
</tr>
</table>
</form>
</body>
</html>
como lo hago he realizado un ejercicio con un codigo con ajax pero cada vez que ingreso la ip y la valida se borra la ip, no queda en la caja de texto, agradezco su ayuda.

1 Respuesta

Respuesta
Cuando hace la llamada Ajax que comenta, ¿hace el ingreso a la Base de Datos? ¿Y lo que hace es relanzar nuevamente el formulario?
Con Ajax, puede ejecutar llamadas al servidor sin tener que recargar el formulario, por lo tanto no borraria los campos input, si puede darme cuanta mas información del código mucho mejor, para poder ayudarle.
Intente ponerme el código del Ajax que está utilizando y si puede, parte del código de comprobación de Ip's y la parte de código del servidor que le devuelve al Ajax. Así intentaré encontrar lo que falla o ayudarle a encontrar una solución.
Gracias por su respuesta, anoche buscando ejemplos remplace el ajax anterios por este
que encontre en una we, yhac lo que necesito, lo que sucede es que el mensaje de alerta permanece y no se quita, bueno este es el ajax, 
??function isiAJAX(idmain,idloader){this.objAjax=null;this.idmain=idmain;this.idloader=idloader;this.debug=true;this.aborta=true;this.working=false;this.noajax='Su navegador no es compatible para trabajar con esta web.';this.Request=
function(data){var parent=this;data=this.Default(data);this.objAjax.open(data.method,data.url,data.async);if(data.headers)
for(var i=0;i<data.headers.length;i+=2)
this.objAjax.setRequestHeader(data.headers,data.headers[i+1])
if(data.async){this.working=true;this.Cargador(true);this.objAjax.onreadystatechange=
function(){if(parent.objAjax.readyState==4){if(parent.aborta){if(data.onComplete)
data.onComplete(parent.objAjax,data);if((parent.objAjax.status==200||parent.objAjax.status==304)&&data.onOK)
data.onOK(parent.objAjax,data);else if(data.onError)
data.onError(parent.objAjax,data);else if(parent.debug)
alert('Error: '+parent.objAjax.status+' '+parent.objAjax.statusText);}
else
parent.aborta=true;parent.Cargador(false);parent.working=false;}
};}
this.objAjax.send(data.param);};this.Actualiza=
function(objAjax,data){switch(data.type){case 1:{if(data.iner==0)
$(data.id).innerHTML=objAjax.responseText+$(data.id).innerHTML;else if(data.iner==1)
$(data.id).innerHTML=$(data.id).innerHTML+objAjax.responseText;else
$(data.id).innerHTML=objAjax.responseText;break;}
case 2:{var objxml=new isiXML(objAjax.responseXML);data.id(objxml.Query(data.query),objAjax);break;}
case 3:{if(data.iner==0)
$(data.id).value=objAjax.responseText+$(data.id).value;else if(data.iner==1)
$(data.id).value=$(data.id).value+objAjax.responseText;else
$(data.id).value=objAjax.responseText;break;}
case 4:{var obj=$(data.id);var objxml=new isiXML(objAjax.responseXML);var resultado=objxml.Query('SELECT node.value, atrib.value');var total=obj.options.length;if(total > 0)
for(var i=0;i<=total;++i)
obj.remove(obj.options)
for(var i=0;i<resultado.length;++i){var newone=new Option(resultado[0],resultado[1]);try{obj.add(newone,obj.options.length);}
catch(ex){obj.add(newone,obj.options[obj.options.length]);}
}
break;}
case 5:{eval(objAjax.responseText);break;}
}
};this.Link=
function(url,id,iner){this.Request({url:this.Url(url),
id:id,
async:(id)? true:false,
iner:iner,
type:1,
onOK:this.Actualiza
});};this.Form=
function(idform,id,iner){var form=$(idform);this.Request({url:this.Url(form.action),
method:form.method,
id:id,
param:this.DataForm(form),
async:(id)? true:false,
iner:iner,
type:1,
onOK:this.Actualiza
});};this.XML=
function(url,funcion,query){this.Request({url:this.Url(url),
id:funcion,
query:query,
type:2,
onOK:this.Actualiza
});};this.Value=
function(url,id,iner){this.Request({url:this.Url(url),
id:id,
iner:iner,
type:3,
onOK:this.Actualiza
});};this.Select=
function(url,id){this.Request({url:this.Url(url),
id:id,
type:4,
onOK:this.Actualiza
});};this.Run=
function(url){this.Request({url:this.Url(url),
type:5,
onOK:this.Actualiza
});};this.Img=
function(url,id,w,h){var temp=new Image();var parent=this;this.working=true;this.Cargador(true);temp.onload=function(){if(parent.aborta){$(id).src=temp.src;if(w)$(id).width=w;if(h)$(id).height=h;}
parent.Cargador(false);parent.aborta=true;parent.working=false;};temp.onerror=function(){parent.Cargador(false);parent.aborta=true;parent.working=false;if(parent.debug)
alert('Error: 404 Not Found');};temp.src=url;};this.Cancel=
function(){if(this.working){this.Cargador(false);this.aborta=false;this.working=false;this.objAjax.abort();}
else
this.aborta=true;};this.DataForm=
function(obj){var resultado='';this.Add=
function(nombre,valor){resultado+=nombre+'='+valor;if((i+1)< obj.length)
resultado+='&';};for(i=0;i<obj.length;i++){var tipo=obj.type;var nombre=obj.name;if(tipo=='select-multiple'){var n=0;for(j=0;j<obj.options.length;j++)
if(obj.options[j].selected)
this.Add(nombre,obj.options[j].value);}
else if(tipo=='radio'||tipo=='checkbox'){if(obj.checked)
this.Add(nombre,obj.value);}
else
this.Add(nombre,obj.value);}
return(resultado);};this.CSS=
function(obj,atributo){if(obj.style[atributo])
return(obj.style[atributo]);else if(obj.currentStyle)
return(obj.currentStyle[atributo]);else if(document.defaultView&&document.defaultView.getComputedStyle)
return document.defaultView.getComputedStyle(obj,"").getPropertyValue(atributo);else
return(null);};this.Default=
function(obj){var argumentos={url:this.homepage,
method:'GET',
async:true
};for(var i in argumentos)
if(obj==null)
obj=argumentos;if(obj.method.toUpperCase()=='GET'&&obj.param){obj.url+=(obj.url.indexOf('?')==-1)? '?'+obj.param:'&'+obj.param;obj.param=null;}
else if(obj.method.toUpperCase()=='POST'&&obj.headers==null)
obj.headers=['Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-1'];return(obj);};this.Url=
function(str){var resultado='',obj=str.split('#');if(obj.length > 1){for(var i=1;i<obj.length;++i){resultado+=obj;if((i+1)< obj.length)
resultado+='#';}
}
else
resultado=obj[0];return(resultado);};this.Cargador=
function(onoff){if(this.idloader&&this.working)
$(this.idloader).style.visibility=(onoff)? 'visible':'hidden';};if(typeof XMLHttpRequest!='undefined')
this.objAjax=new XMLHttpRequest();else if(typeof ActiveXObject!='undefined')
this.objAjax=(Number(navigator.appVersion.substr(0,3))>=5)? new ActiveXObject('Msxml2.XMLHTTP'):new ActiveXObject('Microsoft.XMLHTTP');if(this.objAjax==null)
alert(this.noajax);else if(this.idmain&&window.location.hash!=''&&window.location.hash!='#')
this.Link(window.location.href,this.idmain);}
function $(id){return(document.getElementById(id));}
y este es el php.
<?php
include "Connections/conectar.php";   //conexion.
$sqla = mysql_query(" SELECT * from clientes"." WHERE Ip_wam = '$_GET[pw]' and Ip_rf ='$_GET[pw]'");
if(mysql_num_rows($sqla)==0)
{
    echo '';
}
else
{
  echo 'alert("La Ip ya esta asignada ");';  
}
?>
mi pregunta es el codigo php estara bien para consultar varias ips en difefentes celdas de mi base datos. agradezco su colaboracion..estare antento
En un principio la consulta es correcta, pero no se si sabes que te está buscando la misma ip en las dos variables Ip_wam e Ip_rf, en tu PHP, por otra cosa no veo otra anomalia.
Si quieres quitar el letrero de alerta de la IP, en la penultima línea de PHP tienes la linea:
echo 'alert("La Ip ya esta asignada ");';  
Si la borras no te va a devolver nada el ajax y por lo tanto no te va a mostrar dicha alerta, aunque en vez de un alert, puedes escribirlo en alguna parte de una tabla, div, etc... lo que tu quieras.
como hago lo del div, Gracias
Te iba a preguntar, que el ajax que has introducido en tu web, a parte de utilizarlo para comprobar las IP's, ¿lo utilizas para alguna otra cosa?
El código Ajax que has introducido, es como si decirlo un pack de Ajax global, bastante enrevesado y con mucho contenido.
Te comento como funciona el Ajax:
Mediante una acción del usuario, a través de JavaScript, realiza una petición o una consulta al servidor, que éste devuelve un resultado, ya sea texto o código, que posteriormente procesa JavaScript y muestra, ejecuta o crea según la respuesta.
Si vas a dejar el código Ajax, para no complicarte mucho. Si quieres puedes crear un div en el php que luego JavaScript va a insertar a la Web. O modificar un Div ya creado en tu web para la respuesta del servidor.
En tu caso te pongo el ejemplo de crear un div en el PHP para luego procesarlo en JavaScrpt. Esta línea que tienes en el PHP:
echo 'alert("La Ip ya esta asignada ");';  
Reemplazarlo por esto:
Echo "
<div id='resultado_ip' style='padding-left:10px;padding-right:10px;'>La IP ya está asignada</div>
";

Como puedes ver aquí creamos código HTML que luego el JavaScript introducirá en la WEB.
Gracias parce, lo intentare para ver que pasa
nada no he podido validar el formulario, he dado buscado y nada, que otra forma me aconsejas....
Si quiere podemos retomar el punto desde casi cero. Primero de todo preguntarte la forma de funcionamiento de tu sistema. ¿Si es un envio de formulario y procesado en PHP o es una llamada a PHP sin recargar página?
Si es la primera opción no te hace falta nada de AJAX, si ese es tu caso dimelo y te digo como puedes hacerlo, si es la segunda opcìón y necesitas AJAX, comentamelo también y te pondré otra forma mas sencilla de hacerlo que la que me ponias en tu ejemplo. Simplificando pasos te evitas posibles fallos o errores...
Gracias por responder es la segunda opcion, ya que llamo una ejecucion de php para que me verifique los datos para despues ingresar a la base de datos de mysql
¿Si pero te pregunto que si después de realizar la consulta y el ingreso o no en la bbdd pasa a cargar otra página o que hace? El ajax se puede ejecutar para que no cambie de página o si desea realizar mas operaciones en la misma página sin cambiar...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas