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

AJAX mediante POST, no hace nada

Estas en el tema de AJAX mediante POST, no hace nada en el foro de Frameworks JS en Foros del Web. Hola a todos, hasta ahora solo he utilizado el metodo GET y me he puesto a hacerlo con el metodo POST, el problema es que ...
  #1 (permalink)  
Antiguo 03/05/2007, 05:23
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
AJAX mediante POST, no hace nada

Hola a todos, hasta ahora solo he utilizado el metodo GET y me he puesto a hacerlo con el metodo POST, el problema es que no me hace nada, aqui os pongo el codigo:

Código HTML:
<html>
<head>
<script type="text/javascript">
function ajaxFunction()
  {
	// Aqui todo el toston para general el HTTPXMLREQUEST o como se llame ;)
 }
//
function fajax()    
 {
	var titulo,texto,accion;
	titulo = document.getElementById('titulo').value;
	texto = document.getElementById('texto').value;
	accion = document.getElementById('accion').value;
	ajax=ajaxFunction();
	ajax.open("POST", "informacion_ajax.php",true);
	ajax.onreadystatechange=function() 
	 {
		if (ajax.readyState==4) 
		 {
			if(ajax.responseText=='Ondo')
			 {
			  location.href="informacion.php";
			 }
			else if(ajax.responseText=='Txarto')
			 {
			  alert("Ha ocurrido algun error, intentelo de nuevo");
			 }
	 	 }
	 }
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send("titulo="+titulo+"&texto="+texto+"&accion="+accion);
 }
//
</script>
</head>
<body>
<form action="#" method="post" onsubmit="fajax()">
<input type="text" name="titulo" id="titulo" />
<input type="text" name="texto" id="texto" />
<input type="hidden" name="accion" id="accion" value="Nuevo" />
<input type="submit" value="Guardar" />
</form>
</body>
</html> 
envia el formulario pero no hace nada, he estado mirando unos ejemplos y no les veo la diferencia.

Muchas gracias.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan

Última edición por ZiTAL; 03/05/2007 a las 05:31
  #2 (permalink)  
Antiguo 03/05/2007, 12:03
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Re: AJAX mediante POST, no hace nada

pero si esta respondiendo algo? te marca un error en el javascript? en el server?
  #3 (permalink)  
Antiguo 03/05/2007, 14:24
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: AJAX mediante POST, no hace nada

Ahora me abre la pagina:

informacion_ajax.php

cuando lo que debería de hacer es devolver el resultado a la variable:

ajax.responseText
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #4 (permalink)  
Antiguo 05/05/2007, 14:20
hen
 
Fecha de Ingreso: diciembre-2003
Ubicación: Buenos Aires
Mensajes: 63
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: AJAX mediante POST, no hace nada

Hola, me parece que las lineas

-> ajax.setRequestHeader(....);
-> ajax.send(...);

deberian ir debajo de

->ajax.open(...);

espero te sirva.

Chao.
__________________
.:hEN
DevHen
EXITOS
  #5 (permalink)  
Antiguo 06/05/2007, 04:26
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: AJAX mediante POST, no hace nada

mañana lo miro en el curro, gracias ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #6 (permalink)  
Antiguo 07/05/2007, 03:02
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: AJAX mediante POST, no hace nada

pues no, no funciona :(
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #7 (permalink)  
Antiguo 07/05/2007, 06:38
 
Fecha de Ingreso: febrero-2007
Ubicación: Jaén
Mensajes: 40
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: AJAX mediante POST, no hace nada

Hola!

Tengo varias dudas.
1. Como recuperas las variables que envías a la página 'informacion_ajax.php'?
2. Tienes alguna capa donde recibes la respuesta AJAX? Por ejemplo yo utilizo estas dos líneas: contenido = document.getElementById('contenedor');
if (ajax.readyState==4)
{
contenido.innerHTML=ajax.responseText;
}

'contenedor' es la capa donde recibiré todas las respuestas AJAX, la tengo puesta en la página que carga el script AJAX. Las variables enviadas a través de AJAX a php se recuperan con $_REQUEST['nombre_variable'];

Espero haberte sido de ayuda. Si no lo entiendes o no te funciona te puedo hacer tu mismo ejemplo y comprobar si funciona.
  #8 (permalink)  
Antiguo 07/05/2007, 07:20
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: AJAX mediante POST, no hace nada

que tal, hasta que punto te ejecuta bien tu código? por ejemplo si entra a las condiciones

Código HTML:
if(ajax.responseText=='Ondo')
			 {
			  location.href="informacion.php";
			 }
			else if(ajax.responseText=='Txarto')
			 {
			  alert("Ha ocurrido algun error, intentelo de nuevo");
			 }
?
__________________
Wow! No se que decir...
  #9 (permalink)  
Antiguo 08/05/2007, 00:35
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: AJAX mediante POST, no hace nada

en la pagina 'informacion_ajax.php': solo hay un
Código PHP:
echo "Ondo"
No entra ni aquí:

if (ajax.readyState==4)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #10 (permalink)  
Antiguo 08/05/2007, 06:54
 
Fecha de Ingreso: abril-2006
Mensajes: 80
Antigüedad: 18 años
Puntos: 2
Re: AJAX mediante POST, no hace nada

Hola, que tal. A ver, prueba a reescribir tu función así:

Código:
function fajax()    
{
    var titulo,texto,accion;
    titulo = document.getElementById('titulo').value;
    texto = document.getElementById('texto').value;
    accion = document.getElementById('accion').value;

    ajax=ajaxFunction();
    ajax.open("POST", "informacion_ajax.php",true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    ajax.onreadystatechange=function() 
    {
	if (ajax.readyState==4) 
	{
	    if (ajax.status==200)
	    {
		if (ajax.responseText=='Ondo')
		{
		    location.href="informacion.php";
		}
		else if (ajax.responseText=='Txarto')
		{
		    alert("Ha ocurrido algun error, intentelo de nuevo");
		}
                else alert("Ha ocurrido un error: ajax.responseText= "+ajax.responseText);
	    }
	    else alert("Ha ocurrido un error: ajax.status= "+ajax.status);
	}
        else alert("Estado actual= "+ajax.readyState+". Pulsa en Aceptar para continuar.");
    }

    ajax.send("titulo="+titulo+"&texto="+texto+"&accion="+accion);
}
Y si sigue sin funcionar me dices que alerts te han salido.

Última edición por Asyolath; 08/05/2007 a las 06:59
  #11 (permalink)  
Antiguo 08/05/2007, 07:54
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: AJAX mediante POST, no hace nada

AL final fue un error de la funcion en la que se genera el XMLHttpRequest, no le puse el return variable.

Aquí os pongo el codigo:

index.php
Código HTML:
<html> 
<head> 
<script type="text/javascript"> 
function ajaxFunction()
  {
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    return xmlHttp;
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      return xmlHttp;
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        return xmlHttp;
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }
  }
function fajax()    
{
    var titulo,texto,accion,ajax;
    
    titulo = document.getElementById('titulo').value;
    texto = document.getElementById('texto').value;
    accion = document.getElementById('accion').value;

    ajax=ajaxFunction();
    ajax.open("POST","ajax.php",true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    ajax.onreadystatechange=function() 
    {
		if (ajax.readyState==4) 
		{
		    if (ajax.status==200)
		     {
		     	document.getElementById('capa').innerHTML=ajax.responseText;
		     }
		}
    }

    ajax.send("titulo="+titulo+"&texto="+texto+"&accion="+accion);
} 
</script> 
</head> 
<body> 
<form action="#" method="post"> 
<input type="text" name="titulo" id="titulo" /> 
<input type="text" name="texto" id="texto" /> 
<input type="hidden" name="accion" id="accion" value="Nuevo" /> 
<input type="button" value="Guardar" onclick="fajax()" /> 
</form> 

<div id="capa">
</div>

</body> 
</html> 
ajax.php

Código PHP:
<?php
$titulo
=$_REQUEST["titulo"];
$texto=$_REQUEST["texto"];
$accion=$_REQUEST["accion"];
echo 
$titulo." ".$texto." ".$accion;
?>
Pero hay un problema y es que tengo que hacerlo onclick, si lo hago en onsubmit funciona, pero recarga la pagina instantaneamente, no se si se debe de hacer asi onclick o es mejor hacerlo en onsubmit, alguna sugerencia, muchas gracias a todos.

Geroarte!!
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #12 (permalink)  
Antiguo 08/05/2007, 08:26
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: AJAX mediante POST, no hace nada

como un detallito puede hacer tanta diferencia, no? jeje :P
Pero algo mas, no entendi que es lo que quieres hacer :( a lo ejor se me estan iendo las cabras jeje
__________________
Wow! No se que decir...
  #13 (permalink)  
Antiguo 08/05/2007, 08:36
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: AJAX mediante POST, no hace nada

Es simple curiosidad, he visto algunos ejemplos por internet y he visto que utilizaban onsubmit, mientras tanto utilizaré onclick ;)

Bueno la cosa es que funciona ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #14 (permalink)  
Antiguo 08/05/2007, 08:51
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: AJAX mediante POST, no hace nada

Supongo que dependera la "ocación", io usaria para cargar valores el onLoad posiblemente, pero para guardar datos que fueron tecleados pues ya un onClick o talvez un onSubmit :P
__________________
Wow! No se que decir...
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 19:26.