Me gustaría usar el código js, que funciona con variables php. Mi situación ahora:
archivoprincipal.php
<? $myPHPvar = 1234; ?> <html> <body> MY CONTENT <script> var myJSvar = <? echo $myPHPvar; ?> </script> <script src="myFile.js"></script> </body> </html>miArchivo.js
// Here some js code where I access the myJSvar, which was set by $myPHPvar before console.log(myJSvar);Esto funciona ! Pero me gustaría cambiar esta estructura. Me gustaría mover la definición myJSvar del archivo principal al jsFile.
Pero si muevo esta línea var myJSvar = <? echo $myPHPvar; ?> en myFile.js no funcionará, porque este no es un archivo php.
No pensé que esto podría ser una solución:
Cambio el nombre de myFile.js a myFile.php y cambio el código de esta manera:
// Aquí un código js donde accedo a myJSvar, que fue establecido por $myPHPvar antes
<script> var myJSvar = <? echo $myPHPvar; ?> console.log(myJSvar); </script> y en mainFile.php cambié <script src="myFile.js"></script> para include('myFile.php');
Esto funciona !
PERO: Primera pregunta de todas: ¿Es una buena idea hacerlo así? Segundo: el "problema" ahora: todos mis archivos ahora son archivos php, también los archivos, que incluyen principalmente código js. Eso no es muy bonito, porque ahora no puedo ver en la primera vista, cuál es un archivo js y cuál es un archivo php.
Gracias por tu apoyo !
Usando PHP, repite los valores en campos HTML ocultos en la página.
Cuando sepa que la página ha terminado de cargarse, vuelva a leerla usando JavaScript.
Tenga en cuenta que, idealmente, simplemente convertiría los datos en una llamada AJAX/xhr/fetch separada a una URL (los datos con formato JSON o XML son buenos para esto), pero como solución provisional, los campos ocultos harán el truco para PHP básico paginas
Del mismo modo, puede hacer eco de algunos JavaScript en línea (etiquetas y todo) y hacer referencia a las variables en otro lugar. Este enfoque funcionará, pero a menudo se lo conoce como "código espagueti" porque el código front-end (JavaScript) y back-end (PHP) entrelazados dificulta la depuración y no se adapta bien a proyectos de código más grandes... meses o años. después, los desarrolladores se encontrarán rascándose la cabeza en cuanto a dónde vive el código, cómo se genera, dónde se debe colocar el código nuevo, etc.
Puedes hacerlo así. Y no hay nada realmente malo en ello. Tienes que llevar los datos al navegador del cliente de alguna manera. Puede hacer esto con: 1. establecer variables php en el DOM 2. llamada XHR o 3. cookies
Esto se puede lograr generando el archivo JS dinámicamente... Puede crear un archivo PHP que generaría el JS dinámicamente como:
Nota: ESTE MÉTODO NO ES MUY RECOMENDABLE. ESTO ES SÓLO PARA SU INFORMACIÓN Y CONOCIMIENTO.
myFile.php (El archivo equivalente de JS)
console.log(123)Su archivo HTML
<script type="text/javascript" src="a.php"></script>Pero esto no es muy recomendable porque los archivos JS son recursos estáticos que se pueden almacenar en caché. El uso de este método solicitaría el archivo JS cada vez que se carga la página (donde solo se transferirá en la primera carga solo si es estático).
El mejor método es mantener las variables dinámicas en su HTML y luego incluir sus archivos JS estáticos que usarán estas variables.