Foros del Web » Programando para Internet » PHP »

pequeño fallo al mezclar php y javascript

Estas en el tema de pequeño fallo al mezclar php y javascript en el foro de PHP en Foros del Web. A ver, estoy intentando hacer que dependiendo de si tengo mensajes nuevos o no, se me abra una ventana nueva automaticamente mostrando los mensajes, bien ...
  #1 (permalink)  
Antiguo 09/08/2003, 06:39
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
pequeño fallo al mezclar php y javascript

A ver, estoy intentando hacer que dependiendo de si tengo mensajes nuevos o no, se me abra una ventana nueva automaticamente mostrando los mensajes, bien todo funciona excepto una chorrada, corriendo este script me sale por pantalla: "undefined", estropenadolo todo.

el codigo php que lo hace es este:

Código PHP:
if($cantidad_mensajes 0) {
        
$texto_mensajes "<a href=\"#\" onclick=\"abrirventana('mensajeria.php','Mensajeria','600','450')\">Tienes $cantidad_mensajes mensajes nuevos.</a><script language=\"JavaScript\">document.writeln(abrirventana('mensajeria.php','Mensajeria','600','450'));</script>";
}
else{
       
$texto_mensajes " No tienes ningun mensaje\";

y el codigo javascript, que me funciona en otros sitios este:

Código PHP:
<script language="Javascript">
function 
abrirventana (url,titulo,ancho,alto){
configuracion=
"width="+ancho+",height="+alto+",toolbar=no,location=no,directories=no,"+
"status=no,menubar=no,scrollbars=yes, "+"resizable=yes";

nueva=window.open(url,titulo,configuracion); 
}
</script> 
que esta situado en el < h e a d > del documento...


alguien sabe decirme porque me sale siempre "undefined" despues de la frase "Tienes X mensajes nuevos." ??

Última edición por Nark; 09/08/2003 a las 06:42
  #2 (permalink)  
Antiguo 09/08/2003, 10:43
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
<script language=\"JavaScript\">document.writeln(abrirvent ana('mensajeria.php','Mensajeria','600','450'));</script>

Quita eso... y solucionado!
__________________
Manoloweb
  #3 (permalink)  
Antiguo 09/08/2003, 13:39
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
Cita:
Mensaje Original por Manoloweb
<script language=\"JavaScript\">document.writeln(abrirvent ana('mensajeria.php','Mensajeria','600','450'));</script>

Quita eso... y solucionado!

si lo quito no se abrira la ventana de mensajeria automaticamente, que es lo que quiero... creo que el error esta en </script> porque si lo quito no muestra lo de undefined, lo malo es que entonces no se carga nada mas de la pagina php.... lo que quiero es llamar a la funcion abrirventana() que es javascript, y que hace que se abra lo de mensajeria, pero quiero hacerlo en mitad del codigo php...
  #4 (permalink)  
Antiguo 09/08/2003, 14:38
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Separa esa linea HTML de PHP, ya sea saliendo de <?php ?> o usando la sintaxis HEREDOC. Tambien podrias poner el HTML generado, no solo el texto que ves en el navegador.

Por cierto, puede ser que te hayas equivocado al ponerlo en el mensaje, pero te sobra el \ al final del texto de "No tienes ningun mensaje".

Saludos.

PD: El error supongo que sera de PHP, no de Javascript. ¿Solo pone undefined o pone algo mas (miralo en el HTML generado)?
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 10/08/2003, 15:50
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
Cita:
Mensaje Original por josemi

Separa esa linea HTML de PHP, ya sea saliendo de <?php ?> o usando la sintaxis HEREDOC. Tambien podrias poner el HTML generado, no solo el texto que ves en el navegador.
No puedo separar esas lineas del php porque necesito que esten guardadas en una variable para su posterior uso en una plantilla HTML guardada en la BD, donde se muestra esa y otras muchas mas variables. En cuanto a la sintaxis HEREDOC, ni idea, dime donde puedo ilustrarme.

Cita:
Mensaje Original por josemi

Por cierto, puede ser que te hayas equivocado al ponerlo en el mensaje, pero te sobra el \ al final del texto de "No tienes ningun mensaje".
Ya lo vi al poner el mensaje, al ver el post que habia escrito me fije que me quitaba automaticamente algunas \ y las añadi separadas, y ahy la devi añadir sin darme cuenta... gracias por el apunte, lastima que no sea el causante del problema


Cita:
Mensaje Original por josemi

PD: El error supongo que sera de PHP, no de Javascript. ¿Solo pone undefined o pone algo mas (miralo en el HTML generado)?
el html generado es este:


Código PHP:
<a href="#" onclick="abrirventana('mensajeria.php','Mensajeria','600','450')">Tienes 2 mensajes nuevos.</a><script language="JavaScript">document.writeln(abrirventana('mensajeria.php','Mensajeria','600','450'));</script> 
no genera undefinied, u zea no sale escrito en ningun lado, pero por pantalla se ve... si es necesario os pongo una captura, pero ya os digo lo que se ve es esto:

" Tienes 2 mensajes nuevos.undefined "

Última edición por Nark; 10/08/2003 a las 16:01
  #6 (permalink)  
Antiguo 10/08/2003, 16:05
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Vale, o sea, que es el texto de la ventana. Es decir, que lo genera mensajeria.php. Si no me equivoco, claro. Pon el codigo de mensajeria.php.

Y sobre lo de HEREDOC, lo tienes en http://www.php.net/manual/en/languag...syntax.heredoc .

Saludos.

PD: Por cierto, esto

document.writeln(abrirventana('mensajeria.php','Me nsajeria','600','450'));

no deberia ser solo

abrirventana('mensajeria.php','Mensajeria','600',' 450');

Ya que lo primero mostraria en la pagina lo devuelto por la funcion abrirventana(), que no devuelve nada. Y lo segundo abriria la ventana sin mas.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 10/08/2003, 16:33
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
Cita:
Mensaje Original por josemi
Y sobre lo de HEREDOC, lo tienes en http://www.php.net/manual/en/languag...syntax.heredoc .
Gracias por el enlace, amos a aprender una cosa mas..


Cita:
Mensaje Original por josemi


PD: Por cierto, esto

document.writeln(abrirventana('mensajeria.php','Me nsajeria','600','450'));

no deberia ser solo

abrirventana('mensajeria.php','Mensajeria','600',' 450');

Ya que lo primero mostraria en la pagina lo devuelto por la funcion abrirventana(), que no devuelve nada. Y lo segundo abriria la ventana sin mas.
efestivamente, el problema era ese... habia que ponerlo sin document.write... muchisimas gracias
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 01:19.