Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Mezclar Php y JavaScript (https://www.clubdelphi.com/foros/showthread.php?t=41266)

lucasarts_18 12-03-2007 00:30:50

Mezclar Php y JavaScript
 
Hola a todos:

He buscado en los foros sobre esto pero no me queda claro cual es la mejor forma de implementarlo, aquí dejo un código javascript:

Código:

var TREE_NODES={
        format:{
                left:0,
                top:150,
                width:180,
                height:372,
                e_image:"images/fo_p.gif",               
                c_image:"images/fc_p.gif",               
                i_image:"images/i_p.gif",
                b_image:'images/b.gif',
                bgcolor:"#d4d0c8",
                back_bgcolor:"#d4d0c8",
                animation:0,
                padding:2,
                level_ident:16,
                dont_resize_back:1
        },
        sub:[
                {html:'Productos',
                        sub:[
                                {html:'JavaScript',
                                        sub:[
                                                {html:'Mantenedor de Productos', url:'#'},
                                                {html:'Mantenedor de Cajas', url:'#'},
                                                {html:'Informes de Productos', url:'#'},
                                                {html:'Productos por BOdegas', url:'#'},
                                                {html:'Envio de Productos', url:'#'}
                                        ]
                                },
                                {html:'ASP.NET',
                                        sub:[
                                                {html:'Smart Links', url:'#'}
                                        ]
                                }
                               
                        ]
                },
                {html:'Services',
                        sub:[
                                {html:'Software Development', url:'#'},
                                {html:'Web Development', url:'#'}
                        ]
                }
        ]
}

Esta código es de una líbrería javascript que conseguí para hacer menús de tipo arbol, mi duda es que esos menús debo generarlos de forma dinámica de acuerdo al perfil de usuario que se conecte, como puedo poner las varibles de php en javascript, o mejor dicho como genero código de javascript a través de php, la idea es así:

Código:

var TREE_NODES={
        format:{
                left:0,
                top:150,
                width:180,
                height:372,
                e_image:"images/fo_p.gif",               
                c_image:"images/fc_p.gif",               
                i_image:"images/i_p.gif",
                b_image:'images/b.gif',
                bgcolor:"#d4d0c8",
                back_bgcolor:"#d4d0c8",
                animation:0,
                padding:2,
                level_ident:16,
                dont_resize_back:1
        },
        sub:[
                {html:'Productos',
                        sub:[
                                {html:'JavaScript',
                                        sub:[
                                                {html:'varphp', url:'#'},
                                                {html:'Mantenedor de Cajas', url:'#'},
                                                {html:'Informes de Productos', url:'#'},
                                                {html:'Productos por BOdegas', url:'#'},
                                                {html:'Envio de Productos', url:'#'}
                                        ]
                                },
                               
etc..
etc..

gracias...

Hasta Luego .-

dec 12-03-2007 01:05:09

Hola,

Que yo sepa tienes dos opciones al menos. Una es hacer que el archivo "*.js" sea procesado por PHP. Puedes conseguirlo desde un archivo ".htaccess" o desde el archivo de configuración de Apache, si es el Servidor Web que usas:

Código:

< Files *.js >
ForceType application/x-httpd-php
< / Files >

Entonces dentro del archivo con JavaScript ya podrías incluir código PHP, encerrándolo en sus correspondientes etiquetas: "<?php echo $variable; ?>". Otra forma es incluir el JavaScript en un archivo PHP, de forma que desde ahí se imprima. Al estar ya en un archivo PHP puedes incluir "echos" y variables tal como se menciona antes.

lucasarts_18 12-03-2007 05:28:31

Cita:

Empezado por dec
Entonces dentro del archivo con JavaScript ya podrías incluir código PHP, encerrándolo en sus correspondientes etiquetas: "<?php echo $variable; ?>".

Hola Dec, esto parece lo mejor, lo intenté

Código:

{html:"<?php echo 'HOLA' ?>", url:'#'},
pero no me muestra ningun valor en pantalla,lo que estoy seguro es que si funciona ya que genera el arbol pero no me rescata ningún valor de php, y ya he configurado el Apache de la forma que mencionaste, debe ser la hora y el sueño que no permite ver cual es el problema...:D

Hasta Luego -.

dec 12-03-2007 11:26:54

Hola,

Bueno. Paciencia que verás como te sale. La opción que mencioné para Apache ciertamente sirve para forzar que PHP procese determinados archivos que normalmente no procesa PHP, como puedan ser los archivos de JavaScript ("*.js").

Quiere decirse que si no haces uso de estos archivos, sino que metes el JavaScript en un archivo PHP no necesitarás de la opción anterior. Por otro lado hay que pensar en si puede comprometerse la seguridad del Servidor en estos casos: quiero decir que tal vez sea mejor algo como esto:

Código:

< Files este-archivo.js >
ForceType application/x-httpd-php
< / Files >

Que no algo como esto:

Código:

< Files *.js >
ForceType application/x-httpd-php
< / Files >

La diferencia es clara: con la primera opción especificamos un archivo en concreto, con la segunda opción estamos haciendo que se procesen todos los archivos "*.js"... y esto acaso no es lo que necesitamos y puede acaso comprometer la seguridad del Servidor o sitio Web de algún modo...

Por otro lado embeber código PHP en código HTML o JavaScript es hasta cierto punto bastante habitual. Quiero decir que debería funcionar, que no se entiende el problema que tú encuentras... a no ser que estemos haciendo algo mal... y no nos demos cuenta, por supuesto.

Probando algo sencillo comprobaremos que todo va como se espera y después nos pondremos a ver qué podemos estar haciendo mal en donde no nos va bien:

Código PHP:

<html>
 <head>
  <script type="text/javascript">
   function Saludos(){
     alert('<?php echo "¡Hola mundo!"?>');
     return true;
   }
  </script>
 </head> 
 <body onload="Saludos();">
 </body>
</html>

Prueba el código fuente anterior. Guárdalo en un archivo con extensión ".php" y ejecútalo. Verás que nada más cargar podrás ver una alerta de JavaScript con el mensaje "¡Hola mundo!" tal y como puede esperarse. No sé. Se me ocurre que tengas algún problema de "comillas" o algo así... ¿usas un editor que resalta la sintaxis de los diferentes lenguajes? Fíjate que los colores "cuadren"... que las etiquetas "<?php" y "?>" no queden "tapadas" dentro de una cadena...

roman 12-03-2007 18:04:00

No sé si tenga algo que ver, pero no todos los servidores tienen habilitado el módulo rewrite de apache, que es el necesario patra la primera opción.

// Saludos

dec 12-03-2007 18:45:30

Hola,

Tal vez... sin embargo yo creo que las cosas van más por el tema de las comillas. Si nos fijamos en el código JavaScript que el compañero refiere más arriba... para mí que lo que ocurre es que hay un lío con las comillas y el código PHP no se ejecuta o no se ejecuta como esperamos... convendría echar un vistazo al resultado, es decir, mirar el código fuente de la página, aunque el resultado no sea el que esperamos, precisamente, para ver qué puede estar pasando ahí. :)

Julián 13-03-2007 01:53:34

jau!

Cita:

Empezado por lucasarts_18
Código:

{html:"<?php echo 'HOLA' ?>", url:'#'},


Te falta el ; despues de 'HOLA'

un saludo;

lucasarts_18 13-03-2007 17:14:16

Excelente dec, funciona de maravilla, ya con esto puedo incrustar código php para poder construir mi menú dinámico, pero me queda dando vuelta el tema de los archivos *.js procesados por php, esto si que no me resultó, mas bien no lo he logrado entender, gracias también a julian por el aporte...:cool:

archivo prueba.php

Código:

var TREE_NODES={
        format:{
                left:0,
                top:150,
                width:180,
                height:372,
                e_image:"images/fo_p.gif",               
                c_image:"images/fc_p.gif",               
                i_image:"images/i_p.gif",
                b_image:'images/b.gif',
                bgcolor:"#d4d0c8",
                back_bgcolor:"#d4d0c8",
                animation:0,
                padding:2,
                level_ident:16,
                dont_resize_back:1
        },
        sub:[
                {html:'Productos',
                        sub:[
                                {html:'JavaScript',
                                        sub:[
                                                {html:'<?php echo "Mantenedor de Productos"?>', url:'#'},
                                                {html:'Mantenedor de Cajas', url:'#'},
                                                {html:'Informes de Productos', url:'#'},
                                                {html:'Productos por BOdegas', url:'#'},
                                                {html:'Envio de Productos', url:'#'}
                                        ]
                                },
                                {html:'ASP.NET',
                                        sub:[
                                                {html:'Smart Links', url:'#'}
                                        ]
                                }
                               
                        ]
                },
                {html:'Services',
                        sub:[
                                {html:'Software Development', url:'#'},
                                {html:'Web Development', url:'#'}
                        ]
                }
        ]
}

He insertado con azul el código php que está funcionando...

Hasta Luego .-

roman 13-03-2007 18:38:29

Cita:

Empezado por lucasarts_18
pero me queda dando vuelta el tema de los archivos *.js procesados por php, esto si que no me resultó, mas bien no lo he logrado entender

Pues al menos podrías revisar lo que comenté, ¿no crees?

// Saludos

lucasarts_18 13-03-2007 21:38:10

Cita:

Empezado por roman
Pues al menos podrías revisar lo que comenté, ¿no crees?

Echaré un vistazo para informarme de lo que dices...:cool:

Gracias...


La franja horaria es GMT +2. Ahora son las 10:51:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi