Foros del Web » Programando para Internet » PHP »

problemas con php y js

Estas en el tema de problemas con php y js en el foro de PHP en Foros del Web. esto estaba en otro post pero nadie contesta ni lo ve ya, asi que abro este... tengo un apagina donde incluyo detro del head lo ...
  #1 (permalink)  
Antiguo 09/04/2005, 18:23
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 12 años, 9 meses
Puntos: 2
problemas con php y js

esto estaba en otro post pero nadie contesta ni lo ve ya, asi que abro este...

tengo un apagina donde incluyo detro del head lo siguiente
<script src="actu.js"></script>

dentro del actu entre otras cosas hace un document.write que no funciona, y por tanto no carga bien el script. si elimino este document.write funciona ala perfeccion pro lo que el error esta aqui. Supongo que podría ser de o bien los ; del codigo php que javascript los entendiera como suyo o bien de los saltos de lineas del codigo php? como solucionarlos si esque es de eso? haciendo \n en ves de saltar de linea? y es este el fallo?
el codigo es el siguiente:

dentro del actu.js:
document.write('<?php
$nombres;
$i=0;
if ($handle = opendir("noticias/titulares/")) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$nombres[$i]=$file;
$i++;
}
}
closedir($handle);
}

$total=count($nombres);

$array_num=array();
foreach($nombres as $v){
if(ereg("resumennoticia([0-9]*).txt",$v,$out)){
$array_num[]=$out[1];
unset($out);
}
}
sort ($array_num);
$comienzo=$array_num[$total-1];

$final=$comienzo-5;

for ($j=$comienzo;$j>=$final;$j--){
$noticia="noticias/titulares/noticia" . $j . ".txt";
include($noticia);
}
?>'); //aqui termina el document.write
  #2 (permalink)  
Antiguo 09/04/2005, 19:14
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
intenta asi:

Código PHP:
document.write('<?php 
$nombres

$i=0
if (
$handle opendir("noticias/titulares/")) { 
while (
false !== ($file readdir($handle))) { 
if (
$file != "." && $file != "..") { 
$nombres[$i]=$file
$i++; 


closedir($handle); 

$total=count($nombres); 
$array_num=array(); 
foreach(
$nombres as $v){ 
if(
ereg("resumennoticia([0-9 ]*).txt",$v,$out)){ 
$array_num[]=$out[1]; 
unset(
$out); 


sort ($array_num); 
$comienzo=$array_num[$total-1]; 
$final=$comienzo-5
for (
$j=$comienzo;$j>=$final;$j--){ 
$noticia="noticias/titulares/noticia" $j ".txt"
include(
$noticia); 

?>');
  #3 (permalink)  
Antiguo 10/04/2005, 06:26
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 12 años, 9 meses
Puntos: 2
si funciona peor hay un pequeño problema en:
=$final;$j--){ $noticia='noticias/titulares/noticia' . $j . '.txt'; include($noticia); } } ?>
antes del igual tengo un mayor (>=$final;) y este > me cierra el script y lo restante (lo que he puesto aqui) se me imprime como texto...

Última edición por Manu_Leon; 10/04/2005 a las 06:52
  #4 (permalink)  
Antiguo 10/04/2005, 09:56
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
mmmmm, si pruebas esto---> (\>=$final;), si no te funciona, igual y me pasas la direccion, para verlo desde donde se imprime, porque asi como que ni te entiendo bien, :) ...

aunque analizando tu codigo "que pones, solo ese...", lo tome e hice unas prubas en local, y puse unas lineas de texto, regadas por todo el codigo, asi:

Código PHP:
<script>
document.write('<?php 
$nombres

$i=0
echo 
"aqui estoy....1<br>"
if (
$handle opendir("noticias/titulares/")) { 
while (
false !== ($file readdir($handle))) { 
if (
$file != "." && $file != "..") { 
$nombres[$i]=$file
$i++; 


closedir($handle); 
echo 
"aqui estoy....2<br>";

$total=count($nombres); 
$array_num=array(); 
foreach(
$nombres as $v){ 
if(
ereg("resumennoticia([0-9 ]*).txt",$v,$out)){ 
$array_num[]=$out[1]; 
unset(
$out); 


echo 
"aqui estoy....3<br>"
sort ($array_num); 
$comienzo=$array_num[$total-1]; 
$final=$comienzo-5
for (
$j=$comienzo;$j>=$final;$j--){ 
$noticia="noticias/titulares/noticia" $j ".txt"
echo 
"aqui estoy....4<br>"
include(
$noticia); 

echo 
"aqui estoy....5<br>";
?>');
</script>

<?
echo "aqui estoy....6<br>";
?>
en total puse 6 lineas, ahi te las marque, TODAS SE IMPRIMEN, sin ningun problema, eso quiere decir que tu codigo no se corta, o se cierra como tu lo dices, funciona a la perfeccion, almenos que no nos muestres algo que ya aigas agregado, y que sea el causante de lo que dices...

Saludos !
  #5 (permalink)  
Antiguo 10/04/2005, 10:16
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 1 mes
Puntos: 7
Cita:
Iniciado por Manu_Leon
esto estaba en otro post pero nadie contesta ni lo ve ya, asi que abro este...

tengo un apagina donde incluyo detro del head lo siguiente
<script src="actu.js"></script>

(...)
Pero la llamada debería ser al revés con
Código PHP:
<script src="actu.php"></script> 
en la parte del servidor y que este escribiera las funciones o datos que hiciera falta que utilizara javascript... primero en el servidor y después en el cliente. Se me escapa un poco la lógica de tu script ¿qué hay en los documentos a los que haces referencia con "noticias/titulares/noticia" . $j . ".txt"?
  #6 (permalink)  
Antiguo 10/04/2005, 14:00
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 12 años, 9 meses
Puntos: 2
en realidad actu.js es una libreria k uso con algunas funciones Javascript k imprimen una barra a la izquierda de las paginas en la que es cargada, conc osas como ultimas noticias, y cosas de esas... todo es Javascript, menus y demas, por ello creo k deberia ser actu.js, lo unico que lleva php es el trozo de codigo que coloqué aquí. El codigo es integramente el que he colocado ahí. no hay nada de más ni de menos...
He probado lo que dices hacer \> y sigue sin funcionar...
Imprime a partir de ese simbolo como texto... entonces visualizo esto en pantalla como texto:
=$final;$j--){ $noticia='noticias/titulares/noticia' . $j . '.txt'; include($noticia); } } ?>

antes de eto esta el signo >
  #7 (permalink)  
Antiguo 10/04/2005, 14:45
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 1 mes
Puntos: 7
El problema es que tal como está el código, en un fichero con terminación .js el código php nunca se va a ejecutar, ya que document.write es una función que se ejecuta cuando el cliente recibe la página, php ya no puede hacer nada en ese momento... y menos con esa extensión con la que ni se llamará al intérprete php.

Si el fichero tuviese extensión .php el código php iría fuera del document.write, antes por ejemplo, y entonces sí que se cargarían los .txt
  #8 (permalink)  
Antiguo 10/04/2005, 15:42
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
Cita:
Iniciado por pintix
El problema es que tal como está el código, en un fichero con terminación .js el código php nunca se va a ejecutar, ya que document.write es una función que se ejecuta cuando el cliente recibe la página, php ya no puede hacer nada en ese momento... y menos con esa extensión con la que ni se llamará al intérprete php.

Si el fichero tuviese extensión .php el código php iría fuera del document.write, antes por ejemplo, y entonces sí que se cargarían los .txt



pero que diablos !!!, hey, si tu llamas un archivo JS, como en este caso, y dentro de el hay <?codigo php?>, y la pagina base es con extension PHP, por supuesto que se interpreta, el problema aqui es la SINTAXIS, como ya lo mencione, tome el codigo he hice una sprubeas con ECHO "bla bla bla";, y todas se imprimen....

Manu_Leon, si gustas me pasas una example completa, para checarla, y poder ayudarte.

Saludos !
  #9 (permalink)  
Antiguo 11/04/2005, 01:32
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 1 mes
Puntos: 7
Cita:
Iniciado por Danger_



pero que diablos !!!, hey, si tu llamas un archivo JS, como en este caso, y dentro de el hay <?codigo php?>, y la pagina base es con extension PHP, por supuesto que se interpreta, el problema aqui es la SINTAXIS, como ya lo mencione, tome el codigo he hice una sprubeas con ECHO "bla bla bla";, y todas se imprimen....

Manu_Leon, si gustas me pasas una example completa, para checarla, y poder ayudarte.

Saludos !
Pues la verdad es que no debería interpretarse el código php en este caso ¿con que navegador haces las pruebas? (la verdad es que no lo he probado... sólo hablo por mi fe en mis conocimientos) En todo caso lo que yo intento decir es que lo mejor es hacer todo el trabajo en php y después hacer lo que sea en javascript... Primero <?php el codigo que toque y al final echo $resultado o simplemente include (.txt), pero no le veo sentido a hacer un document.write una vez en el navegador, y más viendo los problemas que está trayendo el asunto...
  #10 (permalink)  
Antiguo 11/04/2005, 08:50
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 1 mes
Puntos: 7
Cita:
Iniciado por Danger_
(...)
pero que diablos !!!, hey, si tu llamas un archivo JS, como en este caso, y dentro de el hay <?codigo php?>, y la pagina base es con extension PHP, por supuesto que se interpreta, el problema aqui es la SINTAXIS, como ya lo mencione, tome el codigo he hice una sprubeas con ECHO "bla bla bla";, y todas se imprimen....
(...)
Probado en Safari i Firefox en Mac OS X y por mucho que esté en una página base en php si se llama a un fichero externo que se llama actu.js el código php no se ejecuta... En el ejemplo que has puesto puede que se ejecute si todo el código está en un script que está dentro de la misma página, pero no en un fichero externo, que es lo que yo intentaba decir.

Aparte de esto sigo sin ver la lógica de juntar document.write con echo o include si el resultado en la parte del cliente será el mismo... a no ser que el código que haya en los .txt sea tan secreto que no se pueda enseñar al usuario directamente...
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 19:33.