Bonjour,
J'ai créer une fonction jQuery qui est utiliser dans plusieurs vues.
Cette fonction inclue des appels et variables php. Ligne 3, url vers le contrôleur, ligne 6 valeur de autre_credit si spécifié (j’utilise Codeigniter 3.1.9, set_value() est une méthode utilisée pour repopuler un champ de form en cas de rechargement de la page à la suite d'une validation false coté serveur).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| function populateCredits(){
var selection = $("#user_select option:selected").val();
$.post('<?php echo base_url();?>achats/achats/ajax_getCreditsUser', { use_id: selection}, function(data) {
data = $.parseJSON(data);
var options = '';
var selected = <?php echo set_value('autres_credits',0); ?>
for (var i = 0; i < data.length; i++) {
if (data[i].id_credit == selected){
options += '<option value="' + data[i].id_credit + '" selected="selected">' + data[i].credit_designation + '</option>';
}
else {
options += '<option value="' + data[i].id_credit + '">' + data[i].credit_designation + '</option>';
}
}
$("#autres_credits").html(options);
});
} |
Actuellement, elles est incluse en dure dans les différentes vues .php qui l'utilisent, mais j'aimerai la sortir des vues pour la placer dans un répertoire /js/mafonction.js et avoir un seul appel vers cette fonction dans toutes les vues.
J'ai essayé plusieurs méthodes, la basique
<script type="text/javascript" src="http://monsite.fr/js/custom.js"></script>
Avec jQuery.getScript, mais rien à faire, le fait que les balises php viennent d'un fichier externe, on l'air de bloquer le fonctionnement.
Exemple de test que j'ai fait :
1 2 3 4 5 6
|
var urlsite = http://monsite.fr/js/populatecredits.js
jQuery.getScript({
url: urlsite,
dataType: "script",
}); |
Ce bout de code est insérer à l'endroit ou se trouve la fonction habituellement, donc, ce n'est pas un problème d'ordre des instructions.
Peut être le fait que les balises php dans un fichier .js ne fonctionnent pas. Si c'est le cas, je suis obligé de dupliquer la fonction dans chacune des vues qui l'utilisent, ou de trouver une astuce qui fonctionne.
Avant de valider cette demande, j'ai réussi à faire fonctionne le script en mettant une extension .php au fichier js et en l'appelent avec un require_once.
<?php require_once(APPPATH.'../js/populatecredits.php'); ?>
Mais bon, cela me parait du gros bricolage, je préférerai rester dans du js au sein des balises <script>
Quelqu'un aurait-il une idée ?
Merci
Patrice
Partager