2010-07-28 15 views

Respuesta

87

Si el código JS todo se procesa por PHP, entonces usted puede hacer así como así. Si tiene archivos .js individuales, y no desea que PHP los procese (por ejemplo, por razones de almacenamiento en caché), entonces lo que puede hacer es simplemente pasar variables en JS. Por ejemplo, en el index.php (o donde se especifica su diseño), que haría algo como esto:

<script type="text/javascript"> 
var my_var = <?php echo json_encode($my_var); ?>; 
</script> 

A continuación, podría utilizar my_var en sus archivos JS. Este método también le permite pasar otros valores enteros simples, ya que json_encode() también trata las matrices, cadenas, etc. correctamente, serializándolos en un formato que JS puede usar.

+1

json_encode me guardó – Subham93

2

Sí, se puede, siempre y cuando su código JavaScript está incrustado en un archivo PHP.

+1

puede u decir complacer a un sencillo programa hola mundo, por lo que mi yo tenía un poco de luz en mi mente –

+1

Un "hola mundo" programa de hacer lo que exactamente? –

+0

Básicamente lo que (creo) que está diciendo es que si lo anterior era un fragmento de código en un archivo .php, funcionará. Debe tenerse en cuenta que tal vez no sea necesariamente como usted espera, dependiendo de lo que espera. – Davy8

2

Usted está casi en el balón. La única diferencia es que separaría el javascript, por lo que la mayoría estaba en un archivo estático externo. A continuación, sólo definir variables o llama a una función de la página real de PHP:

<script type="text/javascript> 
    function_in_other_file(<?php echo my_php_var; ?>); 
</script> 
+0

hola no funciona, probé –

+0

exp.js contiene -> diversión (i) {alerta (i); } –

-1

No podemos utilizar "php en el medio javascript", debido a que PHP se ejecuta en el servidor y JS - en el cliente.
sin embargo, podemos generar código JS, así como HTML, utilizando todas las características de PHP, incluyendo escaping from HTML uno

+0

@Dumbledore otras respuestas no tienen nada que agregar a esta. La respuesta aceptada hace exactamente lo mismo. Me pregunto dónde encontraste un "nuevo estilo" –

15

Si coloca el código Javascript en php archivo, puede no de otra manera, por ejemplo:

page.php (esto va a funcionar)

function jst() 
{ 
var i = 0 ; 
i = <?php echo 35; ?>; 
alert(i); 
} 

page.js (Esto no funcionará)

function jst() 
{ 
var i = 0 ; 
i = <?php echo 35; ?> 
alert(i); 
} 
+0

page.php no está funcionando tooo :) –

+1

@flash: Asegúrate de ajustar tu código js en las etiquetas ' exp.js contiene -> diversión (i) {alerta (i); } –

3

PHP tiene que ser par sed en el servidor. JS se trabaja en el navegador del Cliente.

Tener código PHP en un archivo .js no funcionará, excepto que puede decirle al servidor, para analizar el archivo que desea tener como .js antes de enviarlo al cliente. Y decirle al servidor es lo más fácil del mundo: simplemente agregue .php al final del nombre del archivo.

Así que puedes ponerle el nombre javascript.php o, para que sepas qué es este archivo PRIMARILY, puedes llamarlo javascript.js.php - el servidor lo reconocerá como .php y lo analizará.

2

Este es el bit de código que necesita en la parte superior de ustedes js

<?php 
    header('Content-Type: text/javascript; charset=UTF-8'); 
?> 

(function() { 
    alert("hello world"); 
})(); 
+0

Ese encabezado no es necesario. –

+0

Incorrecto, necesita este encabezado, si crea un servicio sw.php 'trabajadores con otro encabezado es un error. –

1

Una pequeña demostración puede ayudar a: En abc.archivo PHP:

<script type="text/javascript"> 
    $('<?php echo '#'.$selectCategory_row['subID']?>').on('switchChange.bootstrapSwitch', function(event, state) { 
     postState(state,'<?php echo $selectCategory_row['subID']?>'); 
    }); 
</script> 
+0

o incluso más hermoso selector jQuery/php: '$ ('')' – oMiKeY