2010-07-28 5 views

Répondre

87

Si votre tout le code JS se traité par PHP, alors vous pouvez le faire comme ça. Si vous avez des fichiers .js individuels, et vous ne voulez pas que PHP les traite (par exemple, pour des raisons de mise en cache), alors vous pouvez simplement passer des variables dans JS. Par exemple, dans votre index.php (ou chaque fois que vous spécifiez votre mise en page), vous feriez quelque chose comme ceci:

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

Vous pouvez ensuite utiliser my_var dans vos fichiers JS. Cette méthode vous permet également de passer autre chose que de simples valeurs entières, car json_encode() traite aussi correctement les tableaux, les chaînes, etc., en les sérialisant dans un format que JS peut utiliser.

+1

json_encode m'a sauvé – Subham93

2

Oui, vous pouvez, à condition que votre code JavaScript est intégré dans un fichier PHP.

+1

u peut dire plaire à un simple bonjour programme mondial, de sorte que mon i eu un peu de lumière dans mon esprit –

+1

Un « bonjour monde » programme faire quoi exactement? –

+0

Fondamentalement ce que (je pense) il dit est si l'extrait de code ci-dessus était dans un fichier .php cela fonctionnera. Il convient de noter que cela ne correspond pas nécessairement à ce que vous attendez, selon ce que vous attendez. – Davy8

2

Vous êtes à peu près sur la balle. La seule différence est que je séparerais le javascript de sorte que la majorité était dans un fichier statique externe. Ensuite, vous définissez plusieurs variables ou appelez une fonction à partir de la page PHP réelle:

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

salut ne fonctionne pas, j'ai essayé –

+0

exp.js contient -> fun (i) {alert (i); } –

-1

Nous ne pouvons pas utiliser « php entre javascript », parce que PHP fonctionne sur le serveur et js - sur le client.
Cependant, nous pouvons générer du code JS ainsi que HTML, en utilisant toutes les fonctionnalités de PHP, y compris escaping from HTML un

+0

@Dumbledore autres réponses n'a rien à ajouter à celui-ci. La réponse acceptée fait exactement la même chose. Je me demande où vous avez trouvé un "nouveau style" –

15

Si vous mettez votre code javascript php fichier, vous ne pouvez pas autrement, par exemple:

page.php (Cela fonctionne)

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

page.js (Cela ne fonctionnera pas)

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

page.php ne fonctionne pas tooo :) –

+1

@flash: Assurez-vous d'envelopper votre code js dans les balises ' exp.js contient -> fun (i) {alert (i); } –

3

PHP doit être par sed sur le serveur. JS est travaillé dans le navigateur du client. Avoir du code PHP dans un fichier .js ne fonctionnera pas, sauf que vous pouvez dire au serveur, d'analyser le fichier que vous voulez avoir comme .js avant de l'envoyer au client. Et dire au serveur est la chose la plus simple au monde: il suffit d'ajouter .php à la fin du nom de fichier. Donc, vous pouvez le nommer javascript.php ou, comme vous savez ce que ce fichier est principalement, vous pouvez le nommer javascript.js.php - le serveur le reconnaîtra comme .php et l'analysera.

2

C'est le bit de code que vous avez besoin au-dessus de vous js

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

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

Cet en-tête n'est pas nécessaire. –

+0

Wrong, vous avez besoin de cet en-tête, si vous créez un service sw.php 'travailleurs avec un autre en-tête, il échoue. –

1

Une petite démo peut vous aider: Dans abc.fichier 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

ou encore plus beau sélecteur jQuery/php: '$ ('')' – oMiKeY

Questions connexes