Foros del Web » Programando para Internet » Javascript »

php no recibe datos enviados por ajax

Estas en el tema de php no recibe datos enviados por ajax en el foro de Javascript en Foros del Web. Saludos a todos, esta es la primera vez que realizo una pregunta en este foro, espero estar haciendolo correctamente, antes que nada agradezco a quienes ...
  #1 (permalink)  
Antiguo 19/01/2012, 15:52
 
Fecha de Ingreso: enero-2012
Ubicación: Argentina
Mensajes: 2
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta php no recibe datos enviados por ajax

Saludos a todos, esta es la primera vez que realizo una pregunta en este foro, espero estar haciendolo correctamente, antes que nada agradezco a quienes puedan ayudarme con este problema:

Lo que intento hacer: es enviar informacion desde ajax a php, y mostrarlo en ese archivo php para verificar que efectivamente fue recibido (para esto hago un location.href despues del send en ajax, el location me redirige hacia el archivo php al que le envie la info).

El problema: es que al verificar la variable php que recibe la informacion desde ajax, esta aparece como null.

Info:
  • estoy enviando un string que contiene "categorias" o "productos" segun un tag <li>
  • la funcion comenzar_ajax la estoy llamando desde otro archivo .js, el cual funciona correctamente y lo que hace es buscar el string que se enviara por ajax y pasarselo a este
  • las funciones crearObjetoXHR, las de creacion del XMLHttp y ejecutar_ajax funcionan correctamente pues ya las habia usado con anterioridad, ademas las aprendimos en clase, por lo que deduzco que el problema debe estar con el envio a php.

Codigo ajax:
Código:
function comenzar_ajax(tabla){
	var nombre= "algo=" +tabla;
	var XHR = [ //variable para almacenar funciones de creacion de XMLHttp o ActiveXObject
		function () {return new XMLHttpRequest()},
		function () {return new ActiveXObject("Msxml2.XMLHTTP")},
		function () {return new ActiveXObject("Msxml3.XMLHTTP")},
		function () {return new ActiveXObject("Microsoft.XMLHTTP")}
	];

	function crearObjetoXHR(){
		var xhttp = false;
		for (var i=0;i<XHR.length;i++){
			try {xhttp = XHR[i]();}
			catch (e){continue;}
			break;
		}
		return xhttp;
	}

	function ejecutar_ajax(valor){
		var XHTTPRQ = crearObjetoXHR();
		XHTTPRQ.open('POST','cambios.php',true);
		XHTTPRQ.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		XHTTPRQ.onreadystatechange = function(){
			if (XHTTPRQ.readyState==4 && XHTTPRQ.status==200){}
		}
		XHTTPRQ.send(valor);
		location.href = "cambios.php";		
	}
	pedir(nombre);
	function pedir(nombre){ejecutar_ajax(nombre);}
}
Codigo php:
Código:
<?php
	session_start();
	$table = $_POST["algo"];
	var_dump($table);	
	echo($table);
	echo("algo no funciona");
?>
Nuevamente agradezco cualquier ayuda, si necesitan mas info, avisenme.
  #2 (permalink)  
Antiguo 19/01/2012, 17:03
 
Fecha de Ingreso: enero-2012
Mensajes: 6
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: php no recibe datos enviados por ajax

con JQuery lo consigues con menor cantidad de líneas.

Código Javascript:
Ver original
  1. $.ajax({
  2.             type: "POST"
  3.             , url: "miPHP.php"
  4.             , data: "var1=123,var2=987"
  5.             , complete: function(value){
  6.                 alert("Completo: " + value);
  7.             }  
  8.             , success: function(value){
  9.                 alert(value);        
  10.             }
  11.         });

De lo contrario, efectivamente creas tu objeto XMLHttpRequest y envias...

Código Javascript:
Ver original
  1. httpRequestObject = objectXMLHTTPRequest();
  2.       httpRequestObject.onreadystatechange = function(){ /* Manejador de Status */ };
  3.       httpRequestObject.open("POST", "http://www.XXXX.XXX", true);
  4.       httpRequestObject.setRequestHeader("Connection", "close");
  5.       httpRequestObject.send(VALOR_ENVIAR);

en php los cachas con $_POST['nombreVariable'];

Saludos, espero te sirva de algo.


  #3 (permalink)  
Antiguo 19/01/2012, 17:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: php no recibe datos enviados por ajax

Hola:

Cita:
Iniciado por asiste Ver Mensaje
con JQuery lo consigues con menor cantidad de líneas.
... y el añadido de miles de bytes para cargar la librería...

Veo que detrás de la petición, haces una redirección... tal vez no llegue a ejecutarse por eso... creo que sería mejor, si esa es la intención, redireccionar con el evento de respuesta (readystatechange)...

Tampoco sabemos cómo se envían y cómo se reciben.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 19/01/2012, 20:47
 
Fecha de Ingreso: enero-2012
Ubicación: Argentina
Mensajes: 2
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: php no recibe datos enviados por ajax

Hola, muchas gracias a asiste y caricatos por las respuestas, pero olvide mencionar que no puedo usar Jquery, todo debe ser solo ajax, y php puro. Ademas tambien intenté hacer la redireccion desde el readystatechange pero el problema persiste.

Etiquetas: ajax
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 22:48.