Ver Mensaje Individual
  #11 (permalink)  
Antiguo 08/04/2013, 16:33
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: ajax no envia datos con el metodo GET

Cita:
Iniciado por summerblack Ver Mensaje
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
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Loguin</title>
  5.  
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. //var Datos;
  9. function valida(){
  10. var us =document.getElementById('usuario');
  11. var cl = document.getElementById('clave');
  12. if((limpiar(us.value).length === 0)||(limpiar(cl.value).length === 0)){
  13. alert('complete ambos campos');
  14. 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
  15. }else{
  16. // ejecutamos ajax
  17. var xmlHttp=null;
  18. if (window.ActiveXObject){
  19. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  20. }else{
  21. if (window.XMLHttpRequest){
  22. xmlHttp = new XMLHttpRequest();
  23. }
  24. } // creaste el objeto
  25.  
  26. xmlHttp.onreadystatechange=function(){ // ejecutás el código
  27.  if (xmlHttp.readyState==4 && xmlHttp.status==200){
  28.  
  29. if(xmlHttp.responseText != 'ok'){
  30. alert('nombre o clave incorrectos');
  31. }else{
  32. document.getElementById('loguin').style.display = "none";
  33. document.getElementById('mensaje').innerHTML = "Estás logueado como " + us.value;
  34.  }
  35. }
  36.  }
  37. xmlHttp.open("POST",'entrar.php',true);
  38. xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  39. xmlHttp.send("usuario="+us.value+"&clave="+cl.value);
  40. return false; // siempre devuelve flase para prevenir el submit
  41.  
  42. }
  43. }
  44. // función adicional para prevenir que te pasen caracteres en blanco
  45. function limpiar(valor){
  46. var valor_campo = valor.replace(/^\s+/g,'').replace(/\s+$/g,'');
  47. return valor_campo;
  48. }
  49. //]]>
  50. </head>
  51. <p>Combinación válida = usuario:emprear, clave:fdw </p>
  52. <form action="entrar.php" onsubmit="return valida();" id="loguin" method="post">
  53. usuario: <input type="text" name="usuario" id="usuario" /><br />
  54. passwd: <input type="password" name="clave" id="clave" /><br />
  55. <input type="submit" value="ingresar" />
  56. </form>
  57. <p id="mensaje">
  58.     <!-- mensaje loguin -->
  59. </p>
  60. </body>
  61. </html>

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
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.