IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Insertion script js externe qui contient des balises php dans jQuery ne fonctionne pas


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 62
    Par défaut Insertion script js externe qui contient des balises php dans jQuery ne fonctionne pas
    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).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?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

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- il faut appeler le fichier mafonction-js.php.
    En effet,

    2- Au début de ce fichier, il faut ajouter :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php header("Content-type: application/javascript; charset: utf-8"); ?>

    3- Les variables PHP doivent être exploitables dans ce fichier :
    • il faut que ce soit des variables de SESSION. Ou des CONSTANTES.
    • il faute qu'elles soient définie avant l'appel au fichier "JS".



    4- Pour l'appeler dans une page php :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="mafonction-js.php"></script>
    Dernière modification par Invité ; 13/10/2018 à 12h24.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    le fichier js externe doit en effet soit avoir une extension php afin que le serveur y interprète le ph.

    ou alors indiquer au serveur qu'il doit également interpréter les fichier .js comme étant susceptibles de contenir du php et les interpréter.
    La directive htaccess que tu peux mettre sur le répertoire contenant les fichiers js contenant du code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddType application/x-httpd-php .js
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/12/2014, 10h49
  2. Réponses: 0
    Dernier message: 04/12/2014, 19h56
  3. Récupérer des données php dans jQuery
    Par baldeadama dans le forum jQuery
    Réponses: 2
    Dernier message: 25/09/2014, 16h41
  4. Réponses: 2
    Dernier message: 28/01/2010, 16h35
  5. ouverture des balises PHP dans les include
    Par FoxLeRenard dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo