Cita:
Iniciado por summerblack aah claro ya entiendo porque con submit me enviaba todo lo del formulario, la vdd no lo tenia claro, muchas gracias!!
Asi aún debes usar el submit, esa es la forma correcta, ya que si el usuario deshabilita javascript el form sigue siendo funcional.
Aqui te dejo una forma de como hacerlo
Código HTML:
Ver original<!DOCTYPE html>
<script type="text/javascript"> //<![CDATA[
//var Datos;
function valida(){
var us =document.getElementById('usuario');
var cl = document.getElementById('clave');
if((limpiar(us.value).length === 0)||(limpiar(cl.value).length === 0)){
alert('complete ambos campos');
return false; // hasta aqui si no completó los campos no pasa nada ya que devuelve false al evento onsubmit que llama la función con return
}else{
// ejecutamos ajax
var xmlHttp=null;
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else{
if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
} // creaste el objeto
xmlHttp.onreadystatechange=function(){ // ejecutás el código
if (xmlHttp.readyState==4 && xmlHttp.status==200){
if(xmlHttp.responseText != 'ok'){
alert('nombre o clave incorrectos');
}else{
document.getElementById('loguin').style.display = "none";
document.getElementById('mensaje').innerHTML = "Estás logueado como " + us.value;
}
}
}
xmlHttp.open("POST",'entrar.php',true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send("usuario="+us.value+"&clave="+cl.value);
return false; // siempre devuelve flase para prevenir el submit
}
}
// función adicional para prevenir que te pasen caracteres en blanco
function limpiar(valor){
var valor_campo = valor.replace(/^\s+/g,'').replace(/\s+$/g,'');
return valor_campo;
}
//]]>
<p>Combinación válida = usuario:emprear, clave:fdw
</p> <form action="entrar.php" onsubmit="return valida();" id="loguin" method="post"> usuario:
<input type="text" name="usuario" id="usuario" /><br />passwd:
<input type="password" name="clave" id="clave" /><br /><input type="submit" value="ingresar" /> <!-- mensaje loguin -->
un php sencillo para probarlo
entrar.php
Código:
<?php
$u = $_POST['usuario'];
$p = $_POST['clave'];
if(($u == "emprear") && ($p == "fdw")){
echo "ok";
exit;
}else{
echo "usuario y/o clave no validas";
}
?>
Demo(ejecutar con y sin javascript activado)
http://foros.emprear.com/ajax/loguin/loguin.html
Es un poco lo que te señala @maycolAlvarez
Saludos