Foros del Web » Programando para Internet » PHP »

Mostrar fichero de texto en una ventana nueva

Estas en el tema de Mostrar fichero de texto en una ventana nueva en el foro de PHP en Foros del Web. Hola a todos, Me gustaría leer un fichero de texto y poder mostrar el resultado en una nueva ventana al pulsar un botón. Actualmente, leo ...
  #1 (permalink)  
Antiguo 23/07/2003, 19:35
 
Fecha de Ingreso: junio-2003
Mensajes: 38
Antigüedad: 14 años, 5 meses
Puntos: 0
Mostrar fichero de texto en una ventana nueva

Hola a todos,

Me gustaría leer un fichero de texto y poder mostrar el resultado en una nueva ventana al pulsar un botón.

Actualmente, leo el fichero y lo muestro en la misma página php desde la cual lo estoy leyendo. Uso este código:

#Abrimos el fichero en modo lectura
$dfdirecto = fopen("c:\web\cmmo\Tool\Output\DIRECTO".$n_fichero ,"r");
#Hasta que no lleguemos al final del fichero
while(!feof($dfdirecto))
{


#Capturamos 4096 caracteres dentro de la línea,
#o menos si hay un retorno de carro antes
#(\r\n en Win32, \r en UNIX)

$buffer = fgets($dfdirecto,4096);

#Mostramos el texto, añadiendo <BR> detrás
echo nl2br($buffer);
}
echo "<br>";


Supongo que la forma de hacerlo sería pasar la variable $buffer a una función javascript que me habra una nueva ventana pero no se como usar PHP dentro de una función javascript.

Les agradecería muchísimo si me pudieran ayudar con esto o al menos darme algún consejo de como seguir.

Un saludo,
Carlos.
  #2 (permalink)  
Antiguo 23/07/2003, 19:48
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Puedes pasarselo a javascript tal como lo haces con html...

<script>
variable= <?php echo $buffer; ?>
function tal(){
bla bla bla
}
</script>
__________________
Manoloweb
  #3 (permalink)  
Antiguo 23/07/2003, 21:06
 
Fecha de Ingreso: junio-2003
Mensajes: 38
Antigüedad: 14 años, 5 meses
Puntos: 0
Muchas gracias padrazo,

Pero sigo sin enterarme. Perdona, pero es que soy muy torpe. Por favor, ten paciencia conmigo, hago todo lo que puedo....

A ver, tengo este código:

<!--Más pruebas con botón y varias funciones javascript-->
<table border=0 bgcolor="beige">
<form name="form1">
<input type="button" name="boton" value="Direct Field Effects" onClick="NewWindow(1)">
</FORM></TABLE>



<script language="JavaScript">
<!-- Beginning of JavaScript

function NewWindow(efecto)
{
if (efecto=1)
{
texto="Direct";
}

contents='<body bgcolor="beige"><center><h2>'+texto+' Field Effect Data</h2></center><A HREF="javascript:window.close()" ><center>Close</center> </A>'
options = "toolbar=0,status=0,menubar=0,scrollbars=0,resizab le=0,width=400,height=400";
newwindow=window.open("","Direct", options);

newwindow.document.write(contents);
newwindow.document.close();
}

// - End of JavaScript - -->
</script>



Me gustaría que la función javascript escribiera el contenido de la variable $buffer en la página que abre. Desgraciadamente, no se como pasarsela a la función. Si dentro de la función javascript pongo:

variable= <?php echo $buffer; ?>

me da error al cargar la página. Por otro lado, si quiero pasar $buffer en la llamada a la función, tambien me da error.

Lo dicho, estoy desesperado y no tengo ni p... idea de como hacer que esto funcione.

Espero que tus nuevas obligaciones de padre aun te permitan dedicar unos minutitos para este torpe....

Un millón de gracias,
Carlos.
  #4 (permalink)  
Antiguo 23/07/2003, 22:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tan sólo tienes que usar el "target" en el formulario que contiene tu botón:

<form name="blabla" action="nose.php" target="_BLANK">

más info:
http://www.htmlcodetutorial.com/forms/_FORM_TARGET.html

Y si vas a usar una ventana nueva (con tus propiedades de no bordes, no menus .. etc) .. Usa si quieres tu función javascript .. pero en la que usas te falta indicar en window.open() que usa el script.php que contiene tu ejecución que llama a ese archivo y lo lees ...

Código PHP:
<!--Más pruebas con botón y varias funciones javascript--> 
<
table border=0 bgcolor="beige">
<
form name="form1">
<
input type="button" name="boton" value="Direct Field Effects" onClick="NewWindow(1,'tu_script_php.php')">
</
FORM></TABLE


<
script language="JavaScript">
<!-- 
Beginning of JavaScript

function NewWindow(efecto,pagina
{
if (
efecto=1)

texto="Direct";
}

contents='<body bgcolor="beige"><center><h2>'+texto+' Field Effect Data</h2></center><A HREF="javascript:window.close()" ><center>Close</center> </A>'
options " toolbar=0,status=0,menubar=0,scrollbars=0,resizabl
e=0,width=400,height=400"

newwindow=window.open("pagina","Direct"options);

newwindow.document.write(contents);
newwindow.document.close();
}

// - End of JavaScript - -->
</script> 
Fijate que he añadido un segundo parámetro a tu función ... es el nombre de la página que ha de abrir con window.open() ... La página que ha de abrir no es ni más ni menos que tu script que lee tu archivo y lo muestra (genera su salida hacia HTML en este caso ) ..

Si tienes problemas con tu rutina javascript .. pregunta en el foro adecuado.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 23/07/2003 a las 22:11
  #5 (permalink)  
Antiguo 23/07/2003, 22:24
 
Fecha de Ingreso: junio-2003
Mensajes: 38
Antigüedad: 14 años, 5 meses
Puntos: 0
Hola Cluster,

Muchas gracias por tu respuesta.

Lo que pasa es que no veo muy bien como aplicarla en mi caso. Me explico. La página desde la que llamo a la función javascript es mi página php donde hago la lectura del fichero de texto. Pero además, es que hago otro montón de cosas. Entre ellas un análisis en el que saco la variable $n_fichero que luego paso a la función de leer fichero fopen.

A lo que voy es que no se como extraer el código de lectura del fichero de mi página php a otra página php que será la que llame desde la función javascript.

Perdoname por insistir... pero no se puede pasar de alguna manera la variable buffer que ya tiene el fichero de texto leío a la función que abre la ventana.....?????

Siento molestar tanto pero es que entre que soy nuevo y que tengo que acabar esto ya, necesito mucha ayuda. Yo hago lo que puedo.

Muchas gracias por todo.

Un saludo,
Carlos.
  #6 (permalink)  
Antiguo 23/07/2003, 23:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El proceso es:

Página que tiene el boton o link
---tiene-->
window.open() o taget en el formulario apunta a tu script que hace el proceso de leer tu archivo y mostrarlo como si lo ejecutases individualmente llamandolo por si sólo ...
---ejecuta->
La apertura de ese nueva ventana con la llamda a tu página (script.php ..) o el "target" usado en la definición del formulario (<form ..>) "llamará" a ese script.php y su resultado (HTML/etc resultante) lo entregará en dicha ventana/página nueva.

Si requieres pasar alguna variable de control o lo que necesites .. se lo pasas en el URI que vas a formar... como si de un link corriente se tratase:

Código PHP:
echo "window.open('script_php.php?variable=$valor','ventana','opciones')" 
Es decir .. ejecuta tu ejemplo (el que te modifiqué yo último) en una página .. y llama -Sólo- a tu script que haga el proceso de leer el archivo y mostrarlo ...

Otros procesos que hagas con tus variables que serán las que le deberias pasar a tu porción de código que haga ese proceso de leer el archivo .. tratalas en ese "formulario" con ese javascript o bien le pasas el parámetro (variable(s)) que necesites como te acabo de poner el ejemplo ...

Te recuerdo que pienses que al "llamar" a un script.php .. este se procesa por parte de PHP y el resultado es una página HTML (con javascript y todo lo que quieras) común y corriente ..

Si no entiendes como funciona el objeto window.open() .. de javascript .. mejor pregunta en dicho foro y haz ejemplos "estáticos" con páginas HTML simples ... Ahí veras que la técnica es la que te puse al principio de este mensaje.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 23/07/2003, 23:55
 
Fecha de Ingreso: junio-2003
Mensajes: 38
Antigüedad: 14 años, 5 meses
Puntos: 0
Muchísimas gracias Cluster. Voy a hacer pruebas teniendo en cuenta lo que me dices.

Ya te contaré como me ha ido.

Una vez más, mi más sincero agradecimiento.

Un cordial saludo,
Carlos.
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 15:11.