Utiliser du code PHP dans le fichier Javascript externe
Je me demandais simplement si il est possible d'utiliser fichier JS externe qui contient du code PHP.
mon JS externe
$(document).ready(function(){
$('#update').click(function(){
var tableVal={};
//a bit of php code I need in JS
var search_city=<?php echo $_SESSION['search_city'];?>';
$.post('<?=base_url()?>/project_detail/pub', {'tableVal':tableVal},function(message)
})
})
})
mon point de vue page
<script type="text/javascript" src="<?= base_url();?>js/external.js"></script>
Le JS ne fonctionne pas comme je suppose que le code PHP dans le JS est le problème. Toutes les pensées? Merci beaucoup.
Le préprocesseur va pas analyser le fichier, sauf si le fichier se termine dans une extension qui correspond à la droite de type de contenu, ou vous dites à votre serveur web, le PHP doit traiter les demandes des fichiers qui se terminent dans .js
En d'autres termes, le changement "external.js" "external.php".
En d'autres termes, le changement "external.js" "external.php".
OriginalL'auteur FlyingCat | 2012-01-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire soit en renommant vous
js
fichier àphp
et à l'aide de ce lien dansscript
tagsrc
(comme l'a fait observer dans d'autres réponses)Bien que cela peut sembler un bon moyen facile et il y a de nombreuses raisons de ne pas le faire.
js
fichier devra avoirphp
)Vous pouvez simplement changé pour quelque chose de ce genre pour le faire (dans une meilleure façon, OMI):
Que le contenu de votre
js
est devenu quelque chose comme ceci:qu'advient-il si j'utilise include('external.js.php')?
Que votre
js
seront intégrées et traitées. Vous devez l'entourer descript
tag et ce sera okMerci, ça a résolu mon problème similaire
est-il possible de stocker la valeur de javascript var dans php vars à l'intérieur du bloc de code javascript?
OriginalL'auteur Juicy Scripter
une chose assez rare pour ce faire, il suffit de renommer votre fichier js "external.js.php" (j'ai utiliser cette méthode, mais tant que ça se termine en php il n'a pas d'importance ce que vous utilisez vraiment) alors il suffit de changer l'url de src dans vos balises de script et vous allez loin.
N'oubliez pas que vous pouvez avoir besoin d'inclure la fonction et des fichiers de configuration dans le code javascript pour que base_url() fonctionne.
OriginalL'auteur Lee
Sauf si vous avez besoin de php pour beaucoup de choses dans votre fichier js, je vous suggère de ne pas faire comme mentionné ci-dessus et de ne pas renommer votre fichier js en php pour l'avoir analysée. Fichiers JS sont mieux servis que statique.
Une chose que vous pouvez faire est d'avoir un script en haut de votre document php où vous attribuer votre base_url variable comme globale pour tous vos js:
Dans votre page, avant, y compris toute js
Dans votre fichier js
php
code dans votrejs
😉merci pour l'aide. Aussi Juteuse mentionné. Il y a encore de code php dans le fichier js. +1 si.
agreeed. c'est une bonne manière, sans perdre en performances. déclaration des variables avec les valeurs php et utiliser ces variables dans les fichiers js
OriginalL'auteur Damp
Je crois que c'est possible, mais comme mentionné Brian vous devez laisser le préprocesseur sais qu'il doit traiter. Vous pouvez dire à utiliser php pour gérer .js fichiers (Non recommandé) ou tout simplement utiliser un .fichier php pour votre javascript, puis utiliser:
Cela devrait être ok parce que le type mime est toujours en javascript donc il sera interprété de cette façon. Je ne l'ai jamais essayé, donc c'est une supposition, mais je pense qu'elle doit travailler.
OriginalL'auteur mouser58907
Juste une idée rapide, qui pourrait aider certaines personnes:
Je pense (jamais essayé) il est aussi un moyen de demander au serveur web (Apache, etc) pour laisser les fichiers JS être traitées en tant que contenu PHP.
Avantages:
Retire:
OriginalL'auteur Benjamin Piette