4 votes

Inclure des variables PHP dans un fichier JS externe ?

J'ai quelques lignes de jQuery dans mon application web. Ce code est en ligne pour le moment car il accepte quelques variables PHP.

<script type="text/javascript">

$(document).ready(function(){

    $('.post<?php echo $post->id; ?>').click(function() {

        $.ajax({

            type: 'POST',
            url: 'http://domain.com/ajax/add_love',
            data: { 
                post_id: <?php echo $post->id; ?>,
                user_id: <?php echo $active_user->id; ?>,
                <?php echo $token; ?>: '<?php echo $hash; ?>'

            },
            dataType: 'json',
            success: function(response) {

                $('.post<?php echo $post->id; ?>').html(response.total_loves).toggleClass('loved');

            }

        });

        return false;

    });

});

</script>

Mais comme je suis un adepte des meilleures pratiques, j'aimerais déplacer mon jQuery dans un fichier JS externe.

Comment ai-je pu réaliser un tel exploit ?

Des conseils ? Je suis encore relativement novice en matière de jQuery et de PHP.

Merci !

)

0voto

Ethan Points 836

Sans ajouter beaucoup de complexité, la façon la plus simple de procéder est de faire en sorte que le serveur traite le fichier Javascript comme un fichier PHP, afin que vous puissiez définir les variables PHP dans ce fichier et les répercuter exactement comme vous le faites dans le code de votre question.

Sur Apache, cela signifie créer un fichier .htaccess et y ajouter la ligne suivante :

AddType x-httpd-php .js

(Notez que cela traitera tous vos fichiers javascript comme du PHP. Si vous ne voulez traiter que certains de vos fichiers Javascript en tant que PHP, vous devrez créer une règle .htaccess plus étroite).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X