viceversa variable tutorial tecnologias sirve servidor recargar que programación programacion pasar parametros para node mejor lenguajes lenguaje lado funcion externo entre diferencia desde cómo cual con cliente aplicaciones php javascript symfony1

php - variable - programacion del lado del cliente y servidor



¿Cuál es la forma más segura de pasar argumentos de PHP del lado del servidor a JavaScript del lado del cliente (5)

Esta pregunta ya tiene una respuesta aquí:

En mi aplicación, confío en JavaScript para mejorar la interfaz de usuario, pero todos los datos provienen de una base de datos y son procesados ​​por PHP. De forma predeterminada, uso las declaraciones ''echo'' para sustituir los valores requeridos "justo a tiempo" de la siguiente manera:

var myVariable = <?php echo $myVariableInPHP ?>

Sin embargo, esto no me parece muy elegante y me preocupa la estabilidad y el mantenimiento de dicho código.

¿Tengo alguna alternativa aquí?

Para el lado del servidor, estoy usando el framework PHP de Symfony 1.4.

Gracias,


Es posible que desee utilizar JSON para esto, es muy fácil de usar tanto en PHP (verifique json_encode() ) como en JavaScript.

Es seguro de usar dentro de <script> Etiquetas y navegadores que comprenden JavaScript. Tenga en cuenta que la función PHP no codifica < y > .

Algunos ejemplos de PHP:

$user = (object) array("name"=>"Joseph", "age"=>29, "email"=>"[email protected]"); echo ''<script type="text/javascript"> var user = ''.json_encode($user).''; </script>'';



La primera solución funciona, pero no es una buena práctica combinar el código del lado del cliente con el código del lado del servidor. Se recomienda colocar javascript en archivos .js separados (sin PHP)

Primero crearía una API (escribir documentación) como por ejemplo

GET http://localhost/getProfile?username=$username POST http://localhost/getProfile/$username

Devolverá el objeto JSON utilizando json_encode. Podría usar json-p para la comunicación de dominios cruzados. Luego, a partir de, por ejemplo, Jquery puede obtener fácilmente los datos.

De esta manera su javascript se mantendría limpio.


Mi forma favorita es:

<?php $var = array( ''prop1'' => ''value1'', ''prop2'' => ''value2'', // ... ); ?> <script type="text/javascript"> var varNameSpace = <?php echo json_encode($var); ?>; alert( varNameSpace.prop1 ); // -> ''value1'' </script>

El uso de json_encode() garantiza que los valores pasados ​​a Javascript se escapen y estén bien formateados. El uso de un contenedor de variables comunes también evita que se use el espacio global (ventana).


Prefiero use_dynamic_javascript() helper. Lo "malo" de esto es que tienes que pensar un poco más en dividir la plantilla de representación y configurarla en solicitudes separadas.