Foros del Web » Programando para Internet » PHP »

Como escribir variables en Javascript (JS) desde PHP

Estas en el tema de Como escribir variables en Javascript (JS) desde PHP en el foro de PHP en Foros del Web. Es una pregunta demasiado recurrente,... seguro depende de si estas usando o no Ajax pero en caso de que no, esta seria la forma en ...
  #1 (permalink)  
Antiguo 28/05/2014, 09:46
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Información Como escribir variables en Javascript (JS) desde PHP

Es una pregunta demasiado recurrente,... seguro depende de si estas usando o no Ajax pero en caso de que no, esta seria la forma en la que lo haria:

Si pegas los 3 fragmentos uno detras de otro en un mismo archivo, podras probarlo:

Código PHP:
<?php

// en un Helper (libreria para las vistas)
// incluido en el controller generalmente
function print_js($js_vars)
{    
    if ((!isset(
$js_vars)) or (!is_array($js_vars)))
        return 
null;

    
$out='';    
    foreach (
$js_vars as $var=>$val)
    {        
        if (!
is_numeric($val))
            
$val "'$val'";
            
        
$out .= "var $var  = $val;\n";        
    }
    
    return 
$out;
}
?>
Código PHP:
<?php
// en el Controller:
$js_vr = array();
// ..
$js_vr['base_href'] = 'http://www.lawebdeitalico76.com';
// ..
$js_vr['otra_var'] = 56;
?>
Se supone pasas a la vista la variable $js_vr :

Código PHP:
<!-- en la Vista: -->
<script>
<?=     print_js($js_vr); ?>
</script>
Logicamente despues de incrustar esas variables se pueden llamar scripts cargados como archivos externos (.js)

Se entiende debe tener una implementacion MVC para poder hacer esto.
__________________
Salu2!

Última edición por Italico76; 28/05/2014 a las 09:53
  #2 (permalink)  
Antiguo 28/05/2014, 09:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [Aporte] Como escribir variables en Javascript (JS) desde PHP

Me parece una solución bastante rebuscada y que puede romperse con facilidad, si las variables que estás tratando de escribir en Javascript contienen secuencias especiales se romperá.

Lo mejor sería utilizar JSON, así de fácil:
Código PHP:
Ver original
  1. $data = array('bus' => 'camión');
  2. printf('<script>var data = %s;</script>', json_encode($data));

Y desde luego, el resultado será el correcto y será totalmente compatible:
Código HTML:
Ver original
  1. <script>var data = {"bus":"cami\u00f3n"};</script>
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/05/2014, 10:02
lolainas
Invitado
 
Mensajes: n/a
Puntos:
prefiero ensuciar el html que ensuciar el PHP :P
  #4 (permalink)  
Antiguo 28/05/2014, 10:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [Aporte] Como escribir variables en Javascript (JS) desde PHP

Cita:
Iniciado por lolainas Ver Mensaje
prefiero ensuciar el html que ensuciar el PHP :P
¿A qué te refieres?

Muestra un ejemplo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/05/2014, 10:10
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Como escribir variables en Javascript (JS) desde PHP

Todo nació aquí:
http://www.forosdelweb.com/f13/etiqu...-html-1100630/
  #6 (permalink)  
Antiguo 28/05/2014, 10:13
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Como escribir variables en Javascript (JS) desde PHP

estoy desde el teléfono, acabo de leer bien tu respuesta pateketrueke, me gusta es idea de pasar un objeto
  #7 (permalink)  
Antiguo 28/05/2014, 10:41
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: [Aporte] Como escribir variables en Javascript (JS) desde PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
Lo mejor sería utilizar JSON, así de fácil:

Código PHP:
Ver original
  1. $data = array('bus' => 'camión');
  2. printf('<script>var data = %s;</script>', json_encode($data));
Excelente
__________________
Salu2!

Última edición por Italico76; 28/05/2014 a las 12:19

Etiquetas: javascript, js, variable, variables
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 07:22.