XSL - como pasar variables?

 
Vista:

como pasar variables?

Publicado por victorvgm (1 intervención) el 13/06/2006 17:59:32
Estoy empezando en esto del xml/xsl.

Os explico un poco por encima.

En mi empresa se trabaja con FileMaker que es un sistema de bases de datos.
Primero de todo decidimos hacer una pequeña aplicación de ejemplo para registrar usuarios, que estos hagan login y puedan ver sus asuntos pendientes, nada más. Todo ello lo hice primero en PHP con MySQL. Una vez que funcionaba correctamente, pasamos los datos a FileMaker, y accedíamos a ellos mediante una librería que interactuaba entre PHP y FileMaker. Tampoco hubo problemas.
La chicha viene ahora, cuando queremos pasarlo todo de PHP a XSL. Como ya he dicho, spy nuevo en este lenguaje y todo lo que he conseguido hasta ahora ha sido mediante manuales en inglés y buscando en internet.
Lo que he conseguido es mediante la URL y unos parametros, realizar una consulta y mostrar los datos en una tabla tal y como yo quiero.
Una vez he conseguido esto se me plantean dos dudas:
-¿Como paso variables de un fichero a otro? Ejemplo como paso el nombre de usuario desde la página de login hasta la principal.

-¿Como hago dos querys en la misma página? Ejemplo: En la página principal por un lado necesito mostrar los datos del usuario que ha hecho el login y por otro listar sus asuntos pendientes.

No se si me he explicado bien. Espero que me puedan ayudar.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Pasar variables entre ficheros y realizar múltiples consultas en la misma página

Publicado por Alejandro (227 intervenciones) el 05/07/2023 21:56:43
1. Pasar variables entre ficheros:
Para pasar variables de un fichero a otro en XSL, puedes utilizar parámetros. En el fichero que realiza la llamada, puedes definir un parámetro con el nombre de usuario y pasarlo al fichero principal. Por ejemplo:

En el fichero de login:
1
<xsl:param name="username" select="'nombre_de_usuario'" />

En el fichero principal:
1
2
3
4
<xsl:import href="ruta_al_fichero_de_login.xsl"/>
<xsl:apply-templates select="." mode="main">
    <xsl:with-param name="username" select="$username" />
</xsl:apply-templates>

2. Realizar múltiples consultas en la misma página:
Puedes utilizar modos en XSL para realizar diferentes consultas y mostrar diferentes conjuntos de datos en la misma página. Define los modos en las plantillas correspondientes y utiliza `<xsl:apply-templates>` con el modo adecuado para cada consulta. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!-- Plantilla para mostrar los datos del usuario -->
<xsl:template match="/" mode="main">
    <xsl:param name="username" />
    <!-- Realizar consulta para obtener los datos del usuario -->
    <xsl:variable name="user-data" select="tu:consulta($username)" />
    <!-- Mostrar los datos del usuario -->
    <xsl:apply-templates select="$user-data" mode="mostrar-usuario" />
</xsl:template>
 
<!-- Plantilla para mostrar los asuntos pendientes -->
<xsl:template match="/" mode="main">
    <xsl:param name="username" />
    <!-- Realizar consulta para obtener los asuntos pendientes -->
    <xsl:variable name="pending-issues" select="tu:consulta-asuntos-pendientes($username)" />
    <!-- Mostrar los asuntos pendientes -->
    <xsl:apply-templates select="$pending-issues" mode="mostrar-asuntos-pendientes" />
</xsl:template>
 
<!-- Plantilla para mostrar los datos del usuario -->
<xsl:template match="datos-usuario" mode="mostrar-usuario">
    <!-- Código para mostrar los datos del usuario -->
</xsl:template>
 
<!-- Plantilla para mostrar los asuntos pendientes -->
<xsl:template match="asuntos-pendientes" mode="mostrar-asuntos-pendientes">
    <!-- Código para mostrar los asuntos pendientes -->
</xsl:template>

Ten en cuenta que en el ejemplo anterior, `tu:consulta` y `tu:consulta-asuntos-pendientes` son funciones ficticias que deberás reemplazar con tus propias consultas. Además, asegúrate de tener definidos los correspondientes elementos y estructuras en tu XML de origen.

Recuerda adaptar estas soluciones a tu contexto específico y a tu estructura de datos. Espero que esto te ayude a resolver tus dudas. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar