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

Como obtener una variable en PHP

Estas en el tema de Como obtener una variable en PHP en el foro de Frameworks JS en Foros del Web. Hola a todos! Soy nuevo en el foro, me he decidido a escribir porque no consigo solucionar este problema. Les agradeceria mucho alguna idea a ...
  #1 (permalink)  
Antiguo 30/03/2011, 03:48
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Como obtener una variable en PHP

Hola a todos!

Soy nuevo en el foro, me he decidido a escribir porque no consigo solucionar este problema. Les agradeceria mucho alguna idea a solucionar el problema que tengo entre manos.

Tengo una página PHP, ésta muestra un listado de entrenamientos con su checkbox respectivo.

Si se selecciona un checkbox del listado y luego se clica a un botón de guardar entrenamiento, todos los datos de este entrenamiento (fichero XML) se guardan en una variable dentro de javascript. Esta variable se llama $('activity').innerHTML

En el fichero PHP se hace uso de AJAX, la variable $('activity').innerHTML está dentro del codego javascript de este fichero, y su valor lo muestro en el div 'activity'

Ahora, lo que necesito es guardarme en mi hosting el resultado que me da $('activity').innerHTML en un fichero XML.

Si alguien tiene una idea de como hacer esto se lo agradezco.
Desde ya muchas gracias por vuestra atención.
  #2 (permalink)  
Antiguo 30/03/2011, 04:41
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Como obtener una variable en PHP

Hombre es que dicho así es muy difícil ayudarte. Podrías poner algún trozo de código en el cual creas que puede estar el error?
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #3 (permalink)  
Antiguo 30/03/2011, 04:53
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Buenas,

$('activity').innerHTML no es una variable, ya que "innerHTML" es una función propia del JS. Lo que ocurre cuando haces algo tipo $('activity').innerHTML = 'loquesea' es introducir en los elementos 'activity' el contenido 'loquesea' (intuyo que esa sintaxis, si no me equivoco, es de jQuery).
Hasta ahí no has hecho nada contra el servidor. Lo que tendrías que hacer, es usando Ajax, guardar el valor 'loquesea' donde quieras y como quieras. Como parece que utilizas jQuery, te dejo la documentación para trabajar con Ajax con la api de jQuery: http://api.jquery.com/jQuery.ajax/
  #4 (permalink)  
Antiguo 30/03/2011, 07:06
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Hola de nuevo,

voy a intentar explicaros mejor el problema, haber si alguien me puede ayudar.
Estoy utilizando la API de comunicación que proporciona Garmin.



Código HTML:
<script type="text/javascript">	
	function load() {
	    var display = new Garmin.DeviceDisplay("garminDisplay", 
		{ 
			 pathKeyPairsArray: ["http://www.miWeb.com","c8a0e6942253c7f0222bdcaa24ef0409"],
			showReadDataElement: true,
			showProgressBar: false,
			showFindDevicesElement: true,
			showFindDevicesButton: false,
			showDeviceButtonsOnLoad: false,
			showDeviceButtonsOnFound: false,
			autoFindDevices: true,
			showDeviceSelectOnLoad: true,
			autoHideUnusedElements: true,
			showReadDataTypesSelect: false,
			readDataType: Garmin.DeviceControl.FILE_TYPES.tcxDir,
			deviceSelectLabel: "Selecciona dispositivo <br/>",
			readDataButtonText:			"Listado de entrenamientos",
			showCancelReadDataButton:		false,
			lookingForDevices: 'Buscando el dispositivo ... <br/><br/> <img src="../garmin/device/style/ajax-loader.gif"/>',
			uploadsFinished: "Transferencia Completada",
			uploadSelectedActivities: true,
			uploadCompressedData: false,    // Turn on data compression by setting to true.
			uploadMaximum: 5, 
			dataFound: "#{tracks} activities found on device",
			showReadDataElementOnDeviceFound: true,
			
			postActivityHandler: function(activityXml, display) 
			{
				$('activity').innerHTML += '<hr/><pre>'+activityXml.escapeHTML()+'</pre>';
			}
		}
		);
	}
</script>


<body onload="load()">
	
	<table border="0" cellpadding="4" cellspacing="0" width="100%">
		<tr>
			<td>
				<div id="garminDisplay"></div>
			</td>
		</tr>
		<tr>
			<td>
				<div id="activity"></div>
			</td>
		</tr>
	</table>
	
	

</body>
</html> 

Esta API devuelve los datos del entrenamiento, pero no consigo tener control sobre el resultado... lo unico que sé es que el resultado se muestra en el div "activity".

Ahora bien, no sé como demonios guardar estos datos en un fichero XML.
Estoy atento a cualquier aporte y/o consulta.
Gracias de antemano
  #5 (permalink)  
Antiguo 30/03/2011, 08:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a AJAX
  #6 (permalink)  
Antiguo 30/03/2011, 09:17
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Nadie sabe como puedo trabajar con la información que tengo en
Código:
$('activity').innerHTML
Gracias de antemano.
  #7 (permalink)  
Antiguo 30/03/2011, 09:36
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Para trabajar con el contenido con la ID activity únicamente te basta con utilizar:
Código Javascript:
Ver original
  1. var valor = document.getElementById('activity').innerHTML;
O viendo la sintaxis de la librería que utilizas:
Código Javascript:
Ver original
  1. var valor = $('activity').innerHTML;

Y luego simplemente trabaja con la variable valor.
  #8 (permalink)  
Antiguo 30/03/2011, 09:55
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

No me he explicado bien, lo siento.
Lo que me dice WeSoRz, ya lo habia probado antes de escribir, es asignar el valor de innerHTML a una variable. Obvio. Pero esto no me sirve.


Vamos a ver, el valor que tengo en innerHTML esta corriendo bajo código Javascript.
Yo necesitaria, tener el valor bajo código PHP, para asi poderme crear un fichero XML con el contenido de la variable innerHTML.

Para más información, he estado leyendo, y nosé si estoy en lo cierto, en Javascript existe la posibilidad de crear ficheros pero no es recomendable. Así que lo descarté.

También estoy al corriente de que javascript trabaja del lado cel cliente y PHP del lado del servidor.

Lo ideal es acabar con los datos que me devuelve la API de garmin en un fichero XML, pero nosé como hacerlo.

Alguna idea??
Gracias gente!
  #9 (permalink)  
Antiguo 30/03/2011, 11:06
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Cuando te refieres a crear un fichero XML te refieres a crearlo en el servidor o en el cliente?? Si es en el servidor (lo más lógico) utilizando Ajax puedes hacerlo perfectamente:
Una vez capturada la variable con javascript (el contenido del div activity en tu caso), la envías mediante una petición XMLHttpRequest a un fichero PHP que procesará los datos y creará el fichero XML.
  #10 (permalink)  
Antiguo 30/03/2011, 12:09
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Si, es en el servidor.

Lo que comentas seguramente es la solución correcta, pero recientemente me incio en AJAX y no se como debo hacer la petición XMLHttpRequest para mi caso.

La creación del fichero XMl en PHP no es problema.

Si sabes decirme como hacer esta petición te lo agradezco.

Gracias de antemano y saludos.
  #11 (permalink)  
Antiguo 30/03/2011, 12:35
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

http://www.forosdelweb.com/f77/faqs-...o-ajax-332366/

Ahí tienes un buen faq con mucha info y ejemplos :)
  #12 (permalink)  
Antiguo 30/03/2011, 12:37
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Gracias por la ayuda.

Mañana seguiré con el tema.


Saludos!
  #13 (permalink)  
Antiguo 31/03/2011, 01:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Buenos días,

he estado mirando la FAQ que me incluye WeSoRz y si, hay mucha información.
Sólo he encontrado un sitio que hace referencia a lo que yo necesitaria hacer, que es usar AJAX desde Javascript....

He mirado este POST:

[URL="http://www.forosdelweb.com/f77/howto-ejecutar-javascript-que-viene-ajax-510438/"]http://www.forosdelweb.com/f77/howto-ejecutar-javascript-que-viene-ajax-510438/[/URL]

pero no he conseguido absolutamente nada..
seguiré intentandolo!

Saludos!
  #14 (permalink)  
Antiguo 31/03/2011, 01:42
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Te pongo un par de funciones que podrás reutilizar:
Código Javascript:
Ver original
  1. function newAjax()
  2. {
  3.     var xmlhttp=false;
  4.     try
  5.     {
  6.         // Creación del objeto AJAX para navegadores no IE
  7.         xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  8.     }
  9.     catch(e)
  10.     {
  11.         try
  12.         {
  13.             // Creación del objeto AJAX para IE
  14.             xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15.         }
  16.         catch(E) { xmlhttp=false; }
  17.     }
  18.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
  19.  
  20.     return xmlhttp;
  21. }
Esta primera función se usa siempre para crear un objeto ajax, la función que pongo a continuación es la que se personaliza:
Código Javascript:
Ver original
  1. function nombreFuncion(valor1,valor2,valor3,valor4){
  2.     var ajaxData=newAjax();
  3.     ajaxData.open("POST", './ficheroPHP.php', true);
  4.     ajaxData.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  5.     ajaxData.send("atributo1="+valor1+"&atributo2="+valor2+"&atributo3="+valor3+"&atributo4="+valor4);
  6.  
  7.     ajaxData.onreadystatechange=function()
  8.     {
  9.         if (ajaxData.readyState==4)
  10.         {
  11.           alert(ajaxData.responseText)
  12.         }
  13.     }
  14. }
El número de atributos de la función evidentemente los puedes modificar jeje
ficheroPHP.php es el fichero PHP que recibe los datos mediante POST (en éste caso, porque así lo indicamos) de las variables 'atributo1', 'atributo2', 'atributo3' y 'atributo4' ($_POST['atributo1'], etc...) y 'ajaxData.responseText' es la respuesta del fichero PHP que suele ser algún mensaje de texto simple para indicar si la operación se ha realizado correctamente o no (con un echo 'loquesea'; dentro del fichero PHP nos basta).

Ni que decir tiene que ese alert se puede modificar jeje
  #15 (permalink)  
Antiguo 31/03/2011, 03:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Algo más se ha adelantado, pero sigo sin conseguirlo.

Veamos,

Por un lado tengo este fichero:

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Mis entrenamientos</title>
</head>


<link rel="stylesheet" type="text/css" href="http://www.miWeb.com/entrenamiento.css" />
<script type="text/javascript" src="../prototype/prototype.js"></script>
<script type="text/javascript" src="../garmin/device/GarminDeviceDisplay.js"></script>
<script type="text/javascript">
      function newAjax()
      {
          var xmlhttp=false;
          try
          {
              // Creación del objeto AJAX para navegadores no IE
              xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch(e)
          {
              try
              {
                  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
              catch(E) { xmlhttp=false; }
          }
          if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
          return xmlhttp;
      }

</script>

<script type="text/javascript">	
	
	function nombreFuncion(valor1){
          var ajaxData=newAjax();
          ajaxData.open("POST", 'creaXML.php', true);
          ajaxData.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
          ajaxData.send("atributo1="+valor1);
       
          ajaxData.onreadystatechange=function()
          {
              if (ajaxData.readyState==4)
              {
                alert(ajaxData.responseText);
              }
          }
     }
	  
	function load() {
	    var display = new Garmin.DeviceDisplay("garminDisplay", 
		{ 
			 pathKeyPairsArray: ["http://www.miWeb.com","c8a0e6942253c7f0222bdcaa24ef0409"],
			showReadDataElement: true,
			showProgressBar: false,
			showFindDevicesElement: true,
			showFindDevicesButton: false,
			showDeviceButtonsOnLoad: false,
			showDeviceButtonsOnFound: false,
			autoFindDevices: true,
			showDeviceSelectOnLoad: true,
			autoHideUnusedElements: true,
			showReadDataTypesSelect: false,
			readDataType: Garmin.DeviceControl.FILE_TYPES.tcxDir,
			deviceSelectLabel: "Selecciona dispositivo <br/>",
			readDataButtonText:			"Listado de entrenamientos",
			showCancelReadDataButton:		false,
			lookingForDevices: 'Buscando el dispositivo ... <br/><br/> <img src="../garmin/device/style/ajax-loader.gif"/>',
			uploadsFinished: "Transferencia Completada",
			uploadSelectedActivities: true,
			uploadCompressedData: false,    // Turn on data compression by setting to true.
			uploadMaximum: 5, 
			dataFound: "#{tracks} activities found on device",
			showReadDataElementOnDeviceFound: true,
			
			postActivityHandler: function(activityXml, display) 
			{
				$('activity').innerHTML += activityXml.escapeHTML();
			}
		}
		);
		
	}
	
</script>



<body onload="load()">
	<table border="0" cellpadding="4" cellspacing="0" width="100%">
		<tr>
			<td>
				<div id="garminDisplay"></div>
			</td>
		</tr>
		<tr>
			<td>
				 
				 <div id="activity"></div>
				 
			</td>
		</tr>
	</table>
</body>
</html> 

Y el fichero creaXML.php


Código PHP:
<?php
$text 
$_POST['atributo1'];
echo 
$text;

$file fopen("GPS/entrenamiento.xml""w+");
fwrite($file$text);
fclose($file);
?>

No hay forma de que el resultado del entrenamiento que viene de mi dispositivo GPS y se muestra en
Código HTML:
<div id="activity"></div> 
, en ese momento necesito llamar a la función
Código HTML:
nombreFuncion(con el contenido del div
)


Se entiende lo que me pasa?
  #16 (permalink)  
Antiguo 31/03/2011, 03:31
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Evidentemente lo que tienes que hacer es llamar a la función JS que hace la petición Ajax, sino haces un pan con unas tortas xD
Código Javascript:
Ver original
  1. postActivityHandler: function(activityXml, display)
  2.             {
  3.                 $('activity').innerHTML += activityXml.escapeHTML();
  4.                 nombreFuncion($('activity').innerHTML);
  5.             }
Lógico, no? :)
  #17 (permalink)  
Antiguo 31/03/2011, 03:41
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Ok, pero no funciona.

Mira esto:

Código HTML:
postActivityHandler: function(activityXml, display) 
			{
				$('activity').innerHTML += activityXml.escapeHTML();
				alert($('activity').innerHTML);
				nombreFuncion($('activity').innerHTML);
			}

Teniendo en cuenta que sigo con el codigo mostrado antes, excepto esta parte,
el alert de esta funcion, me saca todo el fichero XML.
Pero el alert de dentro de nombreFuncion($('activity').innerHTML); sale vacio...

Gracias de antemano tio!
  #18 (permalink)  
Antiguo 31/03/2011, 03:45
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Qué alert te sale vacío? el de la respuesta? Mete algún alert en la función nombreFuncion para ver si coge bien el contenido XML que le envías. Y para comprobar que estás haciendo bien la petición Ajax, en el php cambia echo $texto; por echo 'test'; a ver si te muestra algo.
Si el alert de la función nombreFunción te muestra el XML el problema está al pasar los datos al fichero PHP. Si el alert de la respuesta sigue siendo vacío en vez de 'test' está claro que no está funcionando la petición al fichero PHP.
  #19 (permalink)  
Antiguo 31/03/2011, 04:00
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Algo se me escapa.

He hecho estas dos pruebas...
Posteo el codigo y asi nos entenderemos mejor.

Fichero muestraEntreno.php
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Mis entrenamientos</title>
</head>


<link rel="stylesheet" type="text/css" href="http://www.miWeb.com/test/login/members/css/entrenamiento.css" />
<script type="text/javascript" src="../prototype/prototype.js"></script>
<script type="text/javascript" src="../garmin/device/GarminDeviceDisplay.js"></script>
<script type="text/javascript">
      function newAjax()
      {
          var xmlhttp=false;
          try
          {
              // Creación del objeto AJAX para navegadores no IE
              xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch(e)
          {
              try
              {
                  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
              catch(E) { xmlhttp=false; }
          }
          if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
          return xmlhttp;
      }

</script>

<script type="text/javascript">	
	
	function nombreFuncion(valor1){
          var ajaxData=newAjax();
          ajaxData.open("POST", 'creaXML.php', true);
          ajaxData.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
          ajaxData.send("atributo1="+valor1);
       
          ajaxData.onreadystatechange=function()
          {
              if (ajaxData.readyState==4)
              {
			  	alert("que bonito si funcionara....");
                alert(ajaxData.responseText);
              }
          }
     }
	  
	function load() {
	    var display = new Garmin.DeviceDisplay("garminDisplay", 
		{ 
			 pathKeyPairsArray: ["http://www.miWeb.com","c8a0e6942253c7f0222bdcaa24ef0409"],
			showReadDataElement: true,
			showProgressBar: false,
			showFindDevicesElement: true,
			showFindDevicesButton: false,
			showDeviceButtonsOnLoad: false,
			showDeviceButtonsOnFound: false,
			autoFindDevices: true,
			showDeviceSelectOnLoad: true,
			autoHideUnusedElements: true,
			showReadDataTypesSelect: false,
			readDataType: Garmin.DeviceControl.FILE_TYPES.tcxDir,
			deviceSelectLabel: "Selecciona dispositivo <br/>",
			readDataButtonText:			"Listado de entrenamientos",
			showCancelReadDataButton:		false,
			lookingForDevices: 'Buscando el dispositivo ... <br/><br/> <img src="../garmin/device/style/ajax-loader.gif"/>',
			uploadsFinished: "Transferencia Completada",
			uploadSelectedActivities: true,
			uploadCompressedData: false,    // Turn on data compression by setting to true.
			uploadMaximum: 5, 
			dataFound: "#{tracks} activities found on device",
			showReadDataElementOnDeviceFound: true,
			
			postActivityHandler: function(activityXml, display) 
			{
				$('activity').innerHTML += activityXml.escapeHTML();
				alert($('activity').innerHTML);
				nombreFuncion($('activity').innerHTML);
			}
		}
		);
		
	}
	
</script>



<body onload="load()">
	<table border="0" cellpadding="4" cellspacing="0" width="100%">
		<tr>
			<td>
				<div id="garminDisplay"></div>
			</td>
		</tr>
		<tr>
			<td>
				 
				 <div id="activity"></div>
				 
			</td>
		</tr>
	</table>
</body>
</html> 
y fichero creaXML.php
Código PHP:
<?php
$text 
$_POST['atributo1'];
echo 
'test';


$file fopen("GPS/entrenamiento.xml""w+");
fwrite($file$text);
fclose($file);

?>

Al ejecutar, he podido ver:
se ha ejecutado esta parte de codigo primero...

Código HTML:
postActivityHandler: function(activityXml, display) 
			{
				$('activity').innerHTML += activityXml.escapeHTML();
				alert($('activity').innerHTML);
				nombreFuncion($('activity').innerHTML);
			}
el alert de aqui muestra el XML
posteriormente accedo a nombreFuncion(....)

en
Código HTML:
function nombreFuncion(valor1){
          var ajaxData=newAjax();
          ajaxData.open("POST", 'creaXML.php', true);
          ajaxData.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
          ajaxData.send("atributo1="+valor1);
       
          ajaxData.onreadystatechange=function()
          {
              if (ajaxData.readyState==4)
              {
			  	alert("que bonito si funcionara....");
                alert(ajaxData.responseText);
              }
          }
     }
en esta parte se ha mostrado el que bonito si funcionara..
y el siguiente alert ha mostrado el 'test', osease que la peticion al php llega, pero sin los datos que necesito.

No se cual es la explicacion.
  #20 (permalink)  
Antiguo 31/03/2011, 04:05
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Pues la explicación es o bien que no se envían correctamente los datos o que no se reciben jeje
Viendo que la petición se hace correctamente, vuelve a tu echo $text; y a continuación cambia ésta línea:
Código Javascript:
Ver original
  1. ajaxData.send("atributo1=prueba");
Te debería de salir ahora un alert con 'prueba' si todo va bien.
  #21 (permalink)  
Antiguo 31/03/2011, 04:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Sale lo que dices.

Pero lo que no sale son los datos que necesito.
  #22 (permalink)  
Antiguo 31/03/2011, 04:18
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Esto sale sin información


Javascript
Código PHP:
 ajaxData.send("atributo1="+valor1); 

Aqui creo esta el problema...
  #23 (permalink)  
Antiguo 31/03/2011, 04:22
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Vale, lo que hemos hecho hasta ahora es acotar el problema, una especie de debug jeje
Entonces llegamos a la conclusión de que los datos no son correctos para ser enviados, hay que escaparlos. Ten en cuenta que estás enviando una cadena, por lo que habría caracteres que modificarían tal cadena, como las comillas, paréntesis, símbolos +,?, etc... También es posible que el envío de datos por POST esté limitado por lo que si el XML contiene demasiados datos, no se envíe correctamente.
  #24 (permalink)  
Antiguo 31/03/2011, 04:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Ok, voy a investigar sobre el tema.

Gracias por la ayuda WeSorz!
  #25 (permalink)  
Antiguo 31/03/2011, 04:46
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

Hola de nuevo,

tienes toda la razón, he hecho alguna prueba más y son los dichosos caracteres que hay que escapar.

En concreto, debo hacer una función en Javascript que lea el contenido de valor (donde valor es un churrazo de XML) y me sustituya por cada aparicion de &lt; -> < y &gt; -> >, son el inicio y final del tag en XML.

No hay nada estandar para esto??


Por otro lado, comentar que al usar POST para enviar los datos no corro peligro de limitación no?? es el GET el que tiene el limite que antes comentabas.

Saludos
  #26 (permalink)  
Antiguo 31/03/2011, 04:53
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

Prueba con escape en el JS y urldecode en el PHP.

Los POST también tienen un límite que viene dado por la variable PHP post_max_size :)
  #27 (permalink)  
Antiguo 31/03/2011, 04:55
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como obtener una variable en PHP

OK!!

Gracias por la info!!

Danke Sir!!
  #28 (permalink)  
Antiguo 31/03/2011, 05:05
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Como obtener una variable en PHP

De nada, ya nos dices cómo te ha ido :)
  #29 (permalink)  
Antiguo 31/03/2011, 07:53
 
Fecha de Ingreso: marzo-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Busqueda Respuesta: Como obtener una variable en PHP

Buenas tardes,

ante todo agradecer, especialmente a WeSorz su intensa ayuda.
Muchas gracias tio! si vives por Barcelona invitado a una estrella estas!


Finalmente lo he conseguido.
Temia mucho por el tamaño del buffer en el metodo POST, pero lo soporta bien, estoy hablando de mas de 2500 lineas de XML...


El resultado final es que el PHP puede crear por fin el fichero XML, malformado, pero lo creo. Ahora haré una función de reemplazo de caracteres y ya estará listo!

Hay algo que debo hacer si o si, sino no me funciona. Es lo siguiente:


Codigo Javascript:

Código:
function replaceChars(entry) 
 {
		temp =(escape(entry));
		return temp;
}
Y esta funcion la llamo desde esta parte del codigo:

Código Javascript
Código:
postActivityHandler: function(activityXml, display) 
{
				$('activity').innerHTML += activityXml.escapeHTML();;
				var t = $('activity').innerHTML;
			
				$('activity').innerHTML += '<br><br><br><br
<br>------------------<br><br><br><br><br><br><br>';

				var result = replaceChars(t);
				
				$('activity').innerHTML += result;
				nombreFuncion(result);
}


NOTA: si no hiciera
Código:
var result = replaceChars(t);
nunca tendria los datos.



Eso es todo!!
De nuevo, muchas gracias!!

Etiquetas: php, variables
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 18:14.