Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Interactuación de JavaScript y PHP

Hola,

No sé siquiera si el título es correcto, pero, bueno, siempre puede cambiarse si es menester. Resulta que tengo un problema, o, por mejor decir, quisiera encontrar la solución para algo para lo cual me he quedado en blanco. Encuentro alguna manera de hacer lo que quiero, pero, me pregunto cómo podría hacerse de otro modo. Veréis.

Supongamos una página Web en donde los usuarios pueden gestionar y compartir sus URLs favoritas o interesantes o curiosas. Supongamos que queremos dar a los usuarios la posibilidad de que incluyan en sus propias páginas Web un listado con los últimos enlaces publicados en nuestra famosa aplicación, por ejemplo, o también un listado de sus últimos enlaces añadidos: los del usuario en cuestión.

Una forma de hacerlo podría ser proporcionar al usuario cierto código similar al siguiente, que podría incluir en su página Web allí donde quisiera mostrar la lista de enlaces de que venimos hablando:

Código PHP:
<script type="text/javascript" 
 
src="http://www.loturak.es/api/enlaces.php?usuario=pepejuan&enlaces=10">
</script> 
Bien. Hasta ahí llegamos, ¿no es cierto? El usuario podrá especificar su login y el número de enlaces que contendría el susodicho listado. Nosotros recogeríamos la variable "usuario" y "enlaces" y obraríamos en consecuencia.

Ahora bien... me gustaría ir un poco más allá, de manera que pudiera proporcionarse al usuario el siguiente código o similar:

Código PHP:
<script type="text/javascript">
//<![CDATA[
<!--
  var 
enlaces 10;
  var 
usuario 'pepejuan';
//-->
//]]>
</script>
<script type="text/javascript" 
 src="http://www.loturak.es/api/enlaces.js">
</script> 
Y aquí nos vamos acercando al meollo del asunto. Porque nosotros podemos procesar el archivo "enlaces.js" pensando que contenga código PHP, pero, ¿cómo demonios se mezclan ambas cosas, JavaScript y PHP? Tal vez sea una barbaridad, de hecho parece una guarrada.

¿Me veré obligado a recoger en el archivo "enlaces.js" las variables "enlaces" y "usuario" y a partir de ahí invocar a otro archivo (¿vía XmlHttpRequest?) que contenga el Script PHP que al cabo recabe de la base de datos los enlaces oportunos y produzca la salida adecuada?

¿Cómo lo veis vosotros? ¿Se os ocurre alguna idea? ¿Se entiende más o menos lo que pretende conseguirse?

Bueno. Gracias de antemano por vuestras siempre sabias, acertadas y nunca como se debe alabadas respuestas.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 11-10-2006 a las 08:20:46.
Responder Con Cita
  #2  
Antiguo 12-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Pues al cabo de unas cuantas vueltas y de dejar un poco el tema he dado con lo que parece una solución. Creo que es además la habitual en estos casos, salvo que no había caído antes en ella.

Se trata de utilizar "iframes", o a lo menos así es como lo he podido conseguir. El siguiente es el código que un determinado usuario puede añadir en su propia página Web, es decir, se trata de un poco de código javascript:

Código PHP:
  <!-- Loturak www.loturak.es -->
  <
script type="text/javascript">
   
//<![CDATA[
   
<!--
    var 
enlaces 10;
    var 
usuario 'loginusuario';
   
//-->
   //]]>
  
</script>
  <script type="text/javascript"
   src="lista.js">
  </script>
  <!-- Loturak www.loturak.es --> 
Se ve que es posible especificar mediante ciertas variables el número de enlaces a listar y el login del usuario cuyos enlaces quieren listarse.

Estos datos los recogeremos en el archivo "lista.js", donde entra en juego el "iframe", como puede verse:

Código PHP:

var url 'lista.php?enlaces='+enlaces+'&usuario='+usuario;
document.write('<iframe style="border: none;" src="'+url+'" width="99%" height="99%" scrolling="auto">');
document.write('</iframe>'); 
Nos limitamos, pues, a mostrar el contenido de otro archivo, es decir, la salida del Script "lista.php" en el "iframe", el cual contará ya con los datos, con las variables correspondientes para realizar su cometido.

Ignoramos si hay una forma mejor, más elegante, más práctica de conseguir nuestro objetivo.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 12-10-2006 a las 17:16:43.
Responder Con Cita
  #3  
Antiguo 12-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Para qué es eso de <![CDATA[?

// Saludos
Responder Con Cita
  #4  
Antiguo 12-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Tiene que ver con XML, y, por extensión, con XHTML. Si no se pusiera esa "marca" el código XML no se consideraría válido, peor aún (aunque me arriesgo a equivocarme), no se consideraría bien formado.

Pero, efectivamente, no respondo a tu pregunta... La verdad es que no me siento muy capaz. Te remito al W3C.

Cita:
CDATA sections may occur anywhere character data may occur; they are used to escape blocks of text containing characters which would otherwise be recognized as markup. CDATA sections begin with the string
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 12-10-2006 a las 17:52:58.
Responder Con Cita
  #5  
Antiguo 12-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Interesante problema. La verdad es que tardé en entender en qué consistía. Un par de preguntas:

1. ¿Lo intentaste con ajax?
2. ¿Por qué no usar la opción primera pasando los parámetros directamente al php?

// Saludos
Responder Con Cita
  #6  
Antiguo 12-10-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por roman
...¿Por qué no usar la opción primera pasando los parámetros directamente al php?
Claro, para que andarnos complicando la vida, además si lo que deseas es ocultar la extension php podrías hacer algo asi:

Código:
http://www.loturak.es/api/enlaces/pepejuan/10.js
ó
Código:
http://www.loturak.es/api/enlaces.js?usuario=pepejuan&enlaces=10
en lugar de
Código:
http://www.loturak.es/api/enlaces.php?usuario=pepejuan&enlaces=10
Ya sabes, con nuestro amigo Apache se hacen maravillas.

Saludos
Responder Con Cita
  #7  
Antiguo 13-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Gracias por vuestro interés. En realidad todo es por una cierta comodidad y sencillez a la hora de que alguien sin altos conocimientos (como vosotros) pueda utilizar el código JavaScript que se le proporciona.

No sólo eso. Ahora son dos variables, y pasar dichas variables por la URL podría valer, pero, en caso de añadir más variables, lo que no será extraño, puesto que se trata de una especie de "mini aplicación" que puede "personalizarse", si se añaden más variables, digo, la opción de la URL se vuelve cada vez más "complicada".

Además se convirtió en una especie de obsesión. Quería hacerlo de ese modo, puesto que así lo hacen aplicaciones de Google, por ejemplo (y otras muchas) y no quería "conformarme" con enviar las variables mediante la URL.

En cuanto a usar o no "AJAX"... pues aunque al principio pensé que fuera una posibilidad, lo cierto es que cuando apareció el "iframe" dejó de ser necesario, creo que añadiría una complejidad innecesaria al asunto, creo, ¿eh?

En cuanto a que Apache haga maravillas... ¿quién lo duda? El archivo ".js" es forzado a procesarse como PHP, y, aunque su contenido podría ser acaso sólo JavaScript, lo cierto es que en este caso concreto, como digo, sí se hace uso en parte de PHP.

Y, bueno. No sé qué más puedo decir. Ah, sí. Muchas gracias otra vez por vuestro interés.

Edito: aquí el Hilo que acabo de añadir al apartado de noticias.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 13-10-2006 a las 09:56:53.
Responder Con Cita
  #8  
Antiguo 13-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec
alguien sin altos conocimientos (como vosotros)
Y sí, bueno, siempre he sabido del límite de mis conocimientos, pero no hacía falta publicarlo

Y sí, imaginé que era por cuestiones de facilidad para configuración. Ayer haciendo pruebas vi que podrías ahorrarte el js. A fin de cuentas el iframe y el url los puedes poner en el código a "copiar y pegar" construyendo la url como lo haces ahora. Así, sigues teniendo una parte donde el cliente cambia de manera cómoda las variables.

// Saludos
Responder Con Cita
  #9  
Antiguo 13-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Román
Y sí, bueno, siempre he sabido del límite de mis conocimientos, pero no hacía falta publicarlo


Cita:
Empezado por Román
Y sí, imaginé que era por cuestiones de facilidad para configuración. Ayer haciendo pruebas vi que podrías ahorrarte el js. A fin de cuentas el iframe y el url los puedes poner en el código a "copiar y pegar" construyendo la url como lo haces ahora. Así, sigues teniendo una parte donde el cliente cambia de manera cómoda las variables.
Pues sí. Puede que me lo plantee, efectivamente. Gracias Román.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
De JavaScript a PHP halizia PHP 10 10-10-2006 18:23:38
Validaciones con JavaScript Capo Internet 2 08-08-2006 23:20:25
javascript kejos HTML, Javascript y otros 2 12-04-2006 12:53:35
Javascript en delphi? Ryu Internet 0 20-04-2005 16:57:50


La franja horaria es GMT +2. Ahora son las 10:02:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi