Foros del Web » Programando para Internet » PHP »

Guardar un valor de un JS a una variable PHP

Estas en el tema de Guardar un valor de un JS a una variable PHP en el foro de PHP en Foros del Web. Hola Amigos. Más abajo hay un post similar pero acá la pregunta es un poco diferente. Tengo este script para conocer el valor de la ...
  #1 (permalink)  
Antiguo 22/11/2006, 09:33
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Guardar un valor de un JS a una variable PHP

Hola Amigos.

Más abajo hay un post similar pero acá la pregunta es un poco diferente.

Tengo este script para conocer el valor de la UF

Código HTML:
<script language="javascript" src="http://indicadores.latlink.net/variable.asp?valor=uf&fecha=-1"></script> 
Y ese valor debo pasarlo a una variable de php, me he dado un par de vueltas sin exito todavía ¿sí alguien puede darme una aventón?

Desde ya Grax compas ¡¡
  #2 (permalink)  
Antiguo 22/11/2006, 11:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En realidad en tu caso particular no se trata de "guardar un valor de javascript a una variable PHP" .. entre otras cosas por qué javascript se ejecuta en el "lado del cliente" (en tu navegador) y PHP en el lado del servidor.

Para cuando javascript se ejecuta y obtiene tu valor .. PHP ya perdió el control de ese script.

Pero, lo que si que puedes hacer es llamar a tu URL que devuelve el dato (eso sí, en este caso con código Javascript por médio), capturar esa salida y procesar lo obtenido para quedarte sólo con lo que te interesa (de la cadena que obtendras en general).

Código PHP:
<?php
ob_start
()
include(
"http://indicadores.latlink.net/variable.asp?valor=uf&fecha=-1");
$html=ob_get_contents();
ob_end_flush();

// en $html tienes lo que devuelve la ejecución directa de ese URL .. 
// Como te comenté llega con javascript por médio que no te interesa, eso debes procesarlo para quedarte con lo que necesitas. Tratando el tema con funciones de cadenas o bien expresiones regulares (fijate que el dato va entre comillas .. así lo tienes más fácil).
?>
Más info sobre PHP y sus funciones para control del buffer:
http://www.php.net/manual/en/ref.outcontrol.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 22/11/2006, 11:45
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Gracias Cluster voy a darle un vuelta ¡¡haber como me va ¡
  #4 (permalink)  
Antiguo 22/11/2006, 12:46
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
jaja tendré que tomarme un descanso porque no vi una comilla que me faltaba, omite este mensaje Cluster y gracias denuevo ¡¡

tengo unas consultas.

cuando me dices:
Cita:
Pero, lo que si que puedes hacer es llamar a tu URL que devuelve el dato (eso sí, en este caso con código Javascript por médio), capturar esa salida y procesar lo obtenido para quedarte sólo con lo que te interesa (de la cadena que obtendras en general).
El alcance que me haces entre parentesis no me quedo muy claro ¿a que te refieres con javascript de por medio? debo escribir la cadena del dominio con tags como coloco a continuación, y asignar el include

Código HTML:
<script language="javascript" src="http://indicadores.latlink.net/variable.asp?valor=uf&fecha=-1"></script>. 
Por otro lado estuve probando el código que me has publicado, desde ya se agradece, pero me daba un error justamente en el include.

Gracias por tu time Cluster

Última edición por under_ground; 22/11/2006 a las 12:51
  #5 (permalink)  
Antiguo 22/11/2006, 13:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
El alcance que me haces entre parentesis no me quedo muy claro ¿a que te refieres con javascript de por medio? debo escribir la cadena del dominio con tags como coloco a continuación, y asignar el include
Me refiereo a que ti tu tomas el URL que te proporciona ese servicio para darte la información:

http://indicadores.latlink.net/varia...or=uf&fecha=-1

Y lo ejecutas en tu navegador .. veras que te devuelve una página con el contenido:

Cita:
document.write('18.395,58');
Eso es lo que la llamada con el "include()" y la captura del buffer tendremos si todo va bien en tu variable $html .. Ahí como "humano" ves claro tu valor esperado o dato que necesitas .. pero tambíen se observan más cosas que no te interesan (ese "document.write" es javascript) .. Y también por lo mismo se vé cierto "patrón" en esa cadena .. tu dato a buscar está entre comillas .. (como para que lo aisles mejor o más rápido).

Cita:
Por otro lado estuve probando el código que me has publicado, desde ya se agradece, pero me daba un error justamente en el include.
Deberías indicar el error textual que obtienes. Lo más probable es que se refierea a que no puedes abrir un "wrapper" externo .. es decir .. un archivo externo por llamada tipo http:// .. En ese caso hay otras técnicas para conseguir lo mismo (algo más complejas) que se basan en "sockets" (fsockopen() y afines) donde se implementa parte del protocolo HTTP (simulando con PHP un "cliente" de HTTP cualquiera como es tu navegador común) y recibiendo la respuesta que dá al conectarte .. de hecho por ahí ya tendrías tu dato (sin necesidad de usar a su vez las funciones de control del buffer de PHP. El ejemplo que te pasé si tienes los "wrappers" habilitados, realmente con poco "código" se resuelve el problema.).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:14.