Foros del Web » Programando para Internet » Javascript »

Mostrar mediante un pop-up una plantilla

Estas en el tema de Mostrar mediante un pop-up una plantilla en el foro de Javascript en Foros del Web. Mirad mi problema es el siguiente: Tengo una aplicación que gestiona los currículum de investigadores y está hecha en PHP y MySQL para el gestor ...
  #1 (permalink)  
Antiguo 02/08/2007, 06:13
 
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Mostrar mediante un pop-up una plantilla

Mirad mi problema es el siguiente:

Tengo una aplicación que gestiona los currículum de investigadores y está hecha en PHP y MySQL para el gestor de la base de datos. Utilizo EasyPHP.

Para un determinado módulo que muestra toda la lista de las plantillas existentes en la base de datos utilizo una tabla que muestra el nombre de las plantillas y a continuación por cada nombre de plantilla hay un botón seleccionar y mostrar.

****Con el botón mostrar pretendo que al pulsar sobre él me muestre la plantilla seleccionada. La ruta de una determinada plantilla sería: C:\Archivos de programa\EasyPHP1-8\www\plantillas\plantilla1.html (ya tengo un módulo que las suministra en la base de datos en la carpeta plantillas). ****

Una determinada plantilla, por ejemplo, la plantilla1.xml sería:

<HTML>
<HEAD>
<TITLE>DATOS PERSONALES</TITLE>
<STYLE>
BODY { border-style: groove ; border-color: black }
</STYLE>
</HEAD>
<BODY>
<H1>DATOS PERSONALES DEL INVESTIGADOR</H1>
<UL>
<LI><B>Nombre y apellidos:</B>*nombre* *apellidos*
<LI><B>NIF:</B> *dni*
<LI><B>Fecha de nacimiento:</B> *fecha_nacimiento*
<LI><B>Nacionalidad:</B> *nacionalidad*
<LI><B>Sexo:</B> *sexo*
<LI><B>Dirección:</B> *direccion*
<LI><B>CP:</B> *codigo_postal*
<LI><B>Ciudad:</B> *ciudad*
<LI><B>Provincia:</B> *provincia*
<LI><B>País:</B> *pais*
<LI><B>Teléfono:</B> *telefono*
<LI><B>Correo electrónico:</B> *email*
</UL>
</BODY>
</HTML>

Lo que se pretende es que al pulsar el botón seleccionar de ésta plantilla se utilice ésta para mostrar los datos personales del investigador que lo requiera.
Espero que me hayan entendido y me resuelvan la duda

****Con el botón mostrar pretendo que al pulsar sobre él me muestre la plantilla seleccionada. La ruta de una determinada plantilla sería: C:\Archivos de programa\EasyPHP1-8\www\plantillas\plantilla1.html (ya tengo un módulo que las suministra en la base de datos en la carpeta plantillas). ****

¿Podrían comentarme algo sobre cómo podría hacer lo de mostrar la plantilla mediante un pop-up o algo por estilo? Decidele que ya tengo un script que recoje el nombre de la plantilla que ha sido seleccionada y lo envío a otra página y lo recojo mediante un $_POST['nombre']

Ayudénme por favor ....
  #2 (permalink)  
Antiguo 02/08/2007, 07:02
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Re: Mostrar mediante un pop-up una plantilla

No entiendo muy bien lo que preguntas, podrías concretar más?

De todas formas, el documento XML no lo tienes bien escrito. Ha de cumplir los estándars xhtml. Por ejemplo, las etiquetas <LI> las tienes que cerrar con </LI>
  #3 (permalink)  
Antiguo 02/08/2007, 10:24
 
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Busqueda Re: Mostrar mediante un pop-up una plantilla

Este el código que muestra una tabla con todas las plantillas existentes y sus respectivos botones de mostrar y exportar:

<table width="600px" border="1" align="center">
<?php

for( $i = 0; $i < $max; $i++ ){
//Leo fila por fila
$array = mysql_fetch_array($tabla);
?>
<tr>
<td>
<?php
//De cada fila muestro la columna 0 que es el nombre
//de la plantilla
echo " $array[0] </br>";
?>

</td>
<td>
<?php

$nombre_plantilla = $array[0];
$doc_root = $_SERVER['DOCUMENT_ROOT'];
$ruta = "$doc_root/plantillas/$nombre";

<a href="javascript:select(/* aki paso el nombre de la plantilla seleccionada ó la ruta */)\"> Mostrar </a>";
<a href="javascript:enviar(/*aki pasamos la ruta de la plantilla*/)">Exportar</a>
?>
</td>

El formulario seria:

<form name="frmEnviar" method="POST">
<input type="hidden" name="ruta_plantilla_elegida">
</form>

Y la funcion javascript quedaria:

function enviar(op)
{
document.frmEnviar.ruta_plantilla_elegida=op;
document.frmEnviar.target="_SELF";
document.frmEnviar.action="procesar_plantilla.php" //aki se pone el archivo que procesará la petición
document.frmEnviar.submit();
}

Ahora lo que querría saber si hay alguna manera de que al pulsar el botón Mostrar nos lleve a otra página en blanco, habiendo recogido la variable $ruta = $_POST['ruta_plantilla_elegida']; y nos muestre la plantilla ...

No sé ya de qué manera explicarlo. Por favor espero respuesta. Y mil millones de gracias.
  #4 (permalink)  
Antiguo 03/08/2007, 04:34
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Re: Mostrar mediante un pop-up una plantilla

Hola de nuevo. Creo que sé lo que quieres hacer, pero que no lo haces como deberías, o al menos de forma ortodoxa.

Si lo que quieres es que tras mostrar dinámicamente un listado de plantillas, de empleados o lo que sea, mostrando por ejemplo los nombres de empleado, puedas seleccionar uno de estos para verlo en detalle, con un enlace te sobra. Y el formulario tampoco te hace falta. Ni siquiera te hace falta javascript, pues lo tendrías que hacer con PHP.

Aunque si es como yo pienso que quieres hacer, este hilo debería estar en el foro de PHP, vamos allá:

El enlace del bucle en PHP podría ser así:
Código HTML:
<a href="<? echo 'procesar_plantilla.php?op='.$nombre_plantilla;?>">Mostrar</a> 
Con esto, en cada iteración, estás creando dinámicamente el enlace correspondiente a cada nombre de plantilla, que quedarían así en el HTML del documento del cliente:
Código HTML:
<a href="procesar_plantilla.php?op=[I]plantilla1[/I]">Mostrar</a>
....
<a href="procesar_plantilla.php?op=[I]plantilla2[/I]">Mostrar</a>
....
<a href="procesar_plantilla.php?op=[I]plantilla3[/I]">Mostrar</a>
....
Eso sí, es aconsejable que además de extraer de la BD los nombres de plantilla para mostrarlos en la primera columna de la tabla, te extraigas el identificador único (la clave primaria) para meterlo en cada enlace de la segunda columna, en vez de usar el nombre de la plantilla, o sea, algo así:

Código HTML:
<a href="<? echo 'procesar_plantilla.php?idplantilla='.$idPlantilla;?>">Mostrar</a> 
donde $idPlantilla sería el valor único de referencia de cada plantilla, y idplantilla sería la variable que onbtendrías en procesar_plantilla.php mediante $_GET
  #5 (permalink)  
Antiguo 03/08/2007, 04:37
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Re: Mostrar mediante un pop-up una plantilla

Bueno, cómo estoy!
Tu lo que quieres es usar expresamente el métogo POST supongo, no? (yo es que en PHP siempre he usado GET)

Mira esta línea de código:
document.frmEnviar.ruta_plantilla_elegida.value=op;

pero sigo sin entender por qué pones dos enlaces en vez de uno. Con uno te basta para llamar a la función javascript que te envía los datos a procesar_platilla.php
  #6 (permalink)  
Antiguo 03/08/2007, 12:14
 
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Mostrar mediante un pop-up una plantilla

Pongo dos enlaces porque son diferentes funciones en javascript: una es para mostrar la plantilla que selecciones al pulsar el botón Mostrar y otra es al pulsar Exportar que te exporte los datos de una tabla de la base de datos MySQL a la plantilla html o xml.

Pero creo que no has entendido bien lo que pregunté. El formulario me lo muestra bien y me recoje perfectamente los datos del id de la fila seleccionada en la tabla.

Lo que no sé si se puede hacer es que al pulsar Mostrar te muestre la plantilla en otra ventana, teniendo la ruta que por ejemplo en este caso la de la plantilla1.xml es

C:\Archivos de programa\EasyPHP1-8\www\plantillas\plantilla1.xml y la plantilla que quiero mostrar en el navegador es:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Datos_Personales>
<Nombre>*nombre* *apellidos*</Nombre>
<NIF>*dni*</NIF>
<Fecha_Nacimiento>*fecha_nacimiento*</Fecha_Nacimiento>
<Nacionalidad>*nacionalidad*</Nacionalidad>
<Sexo>*sexo*</Sexo>
<Direccion>*direccion*</Direccion>
<CP>*codigo_postal*</CP>
<Ciudad>*ciudad*</Ciudad>
<Provincia>*provincia*</Provincia>
<Pais>*pais*</Pais>
<Telefono>*telefono*</Telefono>
<Correo_Electronico>*email*</Correo_Electronico>
</Datos_Personales>
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 04:45.