2010-11-26 20 views

Respuesta

70

Puede no, usted tiene que hacer algo como

<script type="text/javascript"> 
    var php_var = "<?php echo $php_var; ?>"; 
</script> 

También puede cargarlo con AJAX

rinoceronte es correcto, el fragmento carece de un tipo en aras de la brevedad .

Además, tenga en cuenta que si $php_var tiene citas, se romperá el guión. Deberá usar addslashes, htmlentities o una función personalizada.

+1

rinoceronte es correcta, json_encode escapa a la variable. – Jonah

+2

W3C establece que 'El atributo de tipo debe especificarse para cada instancia de elemento SCRIPT en un documento. – stillstanding

+0

Correcto, probablemente lo estaba omitiendo en aras de la brevedad. – Jonah

35

metrobalderas está parcialmente bien. Parcialmente, porque el valor de la variable PHP puede contener algunos caracteres especiales, que son metacaracteres en JavaScript. Para evitar tal problema, utilice el código de abajo:

<script type="text/javascript"> 
var something=<?php echo json_encode($a); ?>; 
</script> 
+5

+1. Probado, y json_encode _does_ quote y escape strings correctamente. – Jonah

0

No estoy seguro de lo necesaria que es esto, y se añade una llamada a getElementById, pero si usted está realmente interesado en conseguir JavaScript en línea de su código , puede pasar como un atributo HTML, a saber:

<span class="metadata" id="metadata-size-of-widget" title="<?php echo json_encode($size_of_widget) ?>"></span> 

Y luego, en el JavaScript:

var size_of_widget = document.getElementById("metadata-size-of-widget").title; 
Cuestiones relacionadas