Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2012, 15:52
Rebelion
 
Fecha de Ingreso: enero-2012
Ubicación: Argentina
Mensajes: 2
Antigüedad: 12 años, 4 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.