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

Symfony PHP Discussion :

Ajouter des valeurs PHP en intégrant un fichier JS [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut Ajouter des valeurs PHP en intégrant un fichier JS
    Bonjour à tous,

    J'aurai aimé faire une chose assez simple sans recourir avoir à taper du code JavaScript dans mon PHP (soucis de propreté du code).
    Bref, voilà ce que j'aimerai faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // actions.class.php
    ...
    	public function executeSomething(sfWebRequest $request)
    	{
    		$foo = 'bar';
    		$this->getResponse()->addJavascript('script.js', '', array('foobar' => $foo));
    	}
     
    // script.js
     
    alert(foobar); // 'bar'
    Le fait que j'ai mis addJavascript('script.js', '', array('foobar' => $foo)); n'est pas anodin, addJavascript comporte 3 options, le fichier JS, la position et des options. L'API n'explique rien à ce sujet et sur le net j'ai seulement vu comment fonctionne position, mais rien au sujet d'option.
    Bref, y a t-il une solution à mon problème ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai un problème avec ton problème, c'est que je ne comprend pas ce que tu veux faire.

    Je vois plus où moins, mais il me faudrait plus d'informations sur le contexte pour mieux envisager les possibilités.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    J'aimerai pouvoir passer des variables JS lors de l'appel de mon JS, un peu comme un appel AJAX avec jQuery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.post("test.php", { name: "John", time: "2pm" });

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    En principe, les options sont transmises par sfWebResponse quant le helper appel le javascript.

    Qu'est-ce que cela donne dans ton XHTML ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    En principe, les options sont transmises par sfWebResponse quant le helper appel le javascript.

    Qu'est-ce que cela donne dans ton XHTML ?
    Le problème est que je ne sait absolument pas à quoi le paramètre $option correspond, j'ai mis mon code dans le premier post en exemple de ce que j'aurai aimé faire.

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Qu'est-ce que tu obtiens dans ton XHTML généré quant tu mets ces données options ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    Qu'est-ce que tu obtiens dans ton XHTML généré quant tu mets ces données options ?
    Il va me mettre 2 fois le fichier JS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script type="text/javascript" src="/js/frontend/script.js"></script>
    <script type="text/javascript" src="/js/frontend/site/search.js" foobar="bar"></script>
    J'avais pris cet exemple juste parce que ça ressemblait à la syntaxe que j'aurai aimé avoir. En fait je cherche une fonction qui me permette d'ajouter des variables PHP à mon fichier JS.

  8. #8
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Javascript est un de mes points faible pour l'instant.

    foobar="bar" n'est pas vu comme une variable javascript que tu peux utiliser dans ton code ? Du peu que j'en connais, cela me semblerait être le cas.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    foobar="bar" n'est pas vu comme une variable javascript que tu peux utiliser dans ton code ? Du peu que j'en connais, cela me semblerait être le cas.
    Et bien non (c'est ce que je dis dans mon premier post), le paramètre $option de addJavascript ne sert pas à ça :/

  10. #10
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Normalement il sert à ça...

    Doit être beugé

    Si non, tu peux mettre dans ton template une zone <script> avec le contenu des variables à initialisées. Pas très propre, mais plutôt efficace.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    Normalement il sert à ça...
    Et bien il m'ajoute un attribut html lors de la création de la balise <script>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="/js/frontend/site/search.js" foobar="bar"></script>
    Citation Envoyé par mimi68 Voir le message
    Si non, tu peux mettre dans ton template une zone <script> avec le contenu des variables à initialisées. Pas très propre, mais plutôt efficace.
    Je ne peux pas car les fichiers JS sont appelés avant la fermeture du body :/

  12. #12
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Bon, il reste deux solutions :

    Avec jquery, tu peux facilement repérer une balise html et récupérer la valeur d'un argument.


    Tu peux aussi générer un fichier java à la volée. En effet, avec symfony, tu peux parfaitement utiliser la structure MVC pour générer un template en javascrip. Tu peux alors appeler deux javascript, ton fichier pré-écrit, mais, juste avant, un fichier qui est généré à la volée par une action et par un template.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    Bon, il reste deux solutions :

    Avec jquery, tu peux facilement repérer une balise html et récupérer la valeur d'un argument.
    Je fais du jQuery depuis 3 ans mais du Symfony depuis 2 mois, comme je veux passer un tableau c'est pas top :/

  14. #14
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Alors c'est la deuxième solution qui est la bonne.

    Tu crées une route
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    maRouteJs:
      url: /jssp/param.:sf_Format
      options:
        module: monModule
        action: goJs
      param:
        sf_Format: js
    Et dans l'action la méthode executeGoJs(sfWebRequest $request) reste normal, par contre, le template change de nom (un peu) : goJs.js.php

    A toi de générer le bon code js à charger.

    En principe, cela marche. En principe parce que je l'ai seulement lu, jamais testé !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter des valeurs dans un input
    Par maoboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/06/2007, 15h18
  2. Réponses: 5
    Dernier message: 27/04/2007, 18h11
  3. Réponses: 5
    Dernier message: 17/08/2006, 14h45
  4. Réponses: 13
    Dernier message: 01/02/2006, 12h00
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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