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 :

Variable php pass�e en param�tre � une fonction javascript en twig


Sujet :

Symfony PHP

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    Ao�t 2012
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2012
    Messages : 9
    Par d�faut Variable php pass�e en param�tre � une fonction javascript en twig
    Bonjour � tous,
    comme je le dis dans l'intitul�, je rencontre un probl�me dans le passage d'une variable. Voici mon code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    <iframe id="i_{{fichier.id}}" width="100%" frameborder="0" scrolling="no"
     src="http://localhost/pdf.js/web/viewer.html?file=http://localhost/alecsia/upload/{{fichier.rendu.dossier}}/{{fichier.nomFichier}}"
     onload = iframeLoaded(i_{{fichier.id}}) ></iframe>
    Comme vous pouvez le voir dans la source j'appelle un viewer.html avec un parametre file pour ouvrir un pdf (j'utilise pdf.js), l� tout fonctionne.
    Le probl�me vient du onload, je veux par exemple passer i_14 ( qui correspond a i_{{fichier.id}} )
    Malheureusement ca ne passe pas, mon fichier javascript rend null, alors que quand je mets en dur i_14 ca passe. Donc �a vient de mon passage de param�tre, peut etre que ca ne se fait pas comme ca avec twig mais ca me semblerait logique. Est-ce que quelqu'un a une id�e?
    Pour info, ma fonction calcul la hauteur du "fichier" pdf � afficher afin de ne pas avoir de scrollbar dans mon iframe.
    Merci!

  2. #2
    Membre �m�rite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Ao�t 2011
    Messages
    477
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France

    Informations professionnelles :
    Activit� : Technicien maintenance
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 477
    Par d�faut
    Bonjour,

    �a pourrait se faire comme �a. Peux tu poster le controller qui rends ce template.

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    Ao�t 2012
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2012
    Messages : 9
    Par d�faut
    merci pour ta r�ponse, voici la fonction de mon controller appel� :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    /* Rend le rendu d'id donné en paramètre */   
        public function indexAction($rendu_id, $lecture_etudiant=false)
        {
     
        	// Recup BDD des infos rendu, ses fichiers, leurs annotations
            $em = $this->getDoctrine()->getEntityManager();
        	$rendu = $this->get('alecsia.workService')->get($rendu_id, $this->getUser());
     
        	if (!$rendu) {throw new NotFoundHttpException(sprintf('Rendu #%s introuvable.', $rendu_id));}
     
        	$fichiers = $em->getRepository("AnnotationBundle:Fichier")->findBy(
                array("rendu" => $rendu->getId()),
                array("dossier" => "asc",
                      "nom_fichier" => "asc")
            );
        	$annotations = $em->getRepository("AnnotationBundle:Annotation")->findByRendu($rendu->getId());
     
            $exercices = $em->getRepository("AnnotationBundle:Exercice")->findBySujet($rendu->getSujet()->getId());
            $langages = $em->getRepository("AnnotationBundle:Langage")->findBy(array(),array("nom" => "asc"));
     
     
     
            // Classement des annotations par fichier
            // TODO Peut peut être être optimisé en faisant faire ce tri à la BDD
            $annotArray = array();
     
            foreach ($fichiers as $f) {
                $annotArray[(string) $f->getId()] = array();
            }
     
            foreach ($annotations as $a) {
                $fichier = $a->getFichier();
                if ($fichier != null) {
                    $id_fichier = (string) $fichier->getId();
                } else {
                    $id_fichier = "entete";
                }
                $annotArray[$id_fichier][] = $a;
            }
     
            // Calcul du barème
            $calculeur = $this->get('annotation.calculnotes');
            $bareme = $calculeur -> getBareme($rendu,true);
     
    	    return $this->render('AnnotationBundle:Correction:correction.html.twig', array(
                                'rendu' => $rendu, 
                                'fichiers' => $fichiers, 
                                'liste_annotations' => $annotArray,
                                'exercices' => $exercices,
                                'langages' => $langages,
                                'bareme' => $bareme,
                                'lectureseule' => $rendu->getSujet()->getNotesGelees()
                                || $lecture_etudiant,
                                'lectureetudiant' => $lecture_etudiant
                            ));
        }

  4. #4
    Membre habitu�
    Profil pro
    Inscrit en
    Ao�t 2012
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2012
    Messages : 9
    Par d�faut
    En fait je pense avoir trouv� mon erreur voici mon code javascript :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function iframeLoaded(iframeid) {
    var max = document.getElementById('iframeid').contentWindow.scrollMaxY || document.getElementById('iframeid').contentDocument.height;
     
    if (max<1000){ //taille de la page 
     
    setTimeout(iframeLoaded(iframeid),2000);
    }
    document.getElementById('iframeid').height = max;
    }
    En fait, en cause de mon timeout qui rappel iframeloaded il renvoie un parametre qui ne sera plus d�fini, enfin je pense.

    Je pr�cise que j'utilise setTimeout pour attendre, car en effet quand je charge la page le pdf ne se charge pas instantan�ment, sinon il me renvoie une mauvaise valeur, celle qd le pdf n'est pas encore charg�. du coup je fais attendre, et hop j'ai la bonne valeur apres 2 secondes.

  5. #5
    Membre �m�rite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Ao�t 2011
    Messages
    477
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France

    Informations professionnelles :
    Activit� : Technicien maintenance
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 477
    Par d�faut
    Toutefois, j'attire ton attention sur le fait que tu envoie � ton template l'objet fichiers au pluriel. Peut �tre fait tu une boucle pour r�cup�rer un fichier.id ?

  6. #6
    Membre habitu�
    Profil pro
    Inscrit en
    Ao�t 2012
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2012
    Messages : 9
    Par d�faut
    Oui c'est bien �a. Je ne vois pas tr�s bien comment modifier mon javascript pour que �a fonctionne.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 10/05/2011, 22h46
  2. R�ponses: 11
    Dernier message: 01/02/2011, 15h20
  3. Passage de variable php en parametre d'une fonction javascript
    Par alex7532 dans le forum G�n�ral JavaScript
    R�ponses: 10
    Dernier message: 26/01/2010, 19h46
  4. Nom d'une variable pass�e en param�tre � une fonction
    Par cata2 dans le forum Interfaces Graphiques
    R�ponses: 1
    Dernier message: 07/09/2007, 09h17
  5. [PHP-JS] comment lancer une fonction javascript a partir de php
    Par amika dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 06/06/2005, 19h23

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