Partage
  • Partager sur Facebook
  • Partager sur Twitter

Variable php contenant code javascript

Renvoit 0 :(

    8 septembre 2009 à 17:25:53

    Bien le bonjour à vous tous :D
    J'ai un gros soucis depuis des semaines et je galère tellement que je me dis que un peut d'aide me fera surement mieux avancer que rester seul dans mon coin mdr ;)

    J'aimerais afficher dans un endroit préçis de mon site une galerie d'images,
    Voici en gros comment ça fonctionne...

    J'ai un template avec des variables dans des div's comme ici en exemple pour afficher ma galerie :

    <div id="galerie">
    			<? echo $BLOCK_GALERIE; ?>
    			</div>
    


    J'ai un fichier espacemembre.php qui s'affiche grace à un index.php quand on est connecté (loggé)
    ici je suis connecté en "membre" enfin tout ceci fonctionne parfaitement :D

    La ou je coince à 100% c'est que dans mon fichier espacemembre.php j'ai utilisé un script "Diaporama" en Javascript que je trouve parfait...
    Voici comment je dois l'intégrer pour qu'il soit dans ma div galerie que je cite plus haut :

    $BLOCK_GALERIE .= "
    <DIV ID=ejs_photo_box></div>
    <script type=\"text/javascript\">
    ejs_photo = new Array;
    <?
    $a = 0;
    $handle = opendir('photos'); 
    while (($file = readdir())!=false) { 
    	clearstatcache(); 
    	if($file!=\"..\" && $file!=\".\") 
    		{
    		echo 'ejs_photo[$a] = 'photos/$file';';
    		$a++;
    		}
    	}
    closedir($handle); 
    ?>
    function ejs_aff_photos(num)
    	{
    	if(document.getElementById)
    		{
    		ejs_fin = \"\";
    		if(num!=0)
    			ejs_fin += \"<A HREF=# onClick='ejs_aff_photos("+(num-1)+");return(false)'>< Précédent</A>     \";
    		if(num!=(ejs_photo.length-1))
    			ejs_fin += \"<A HREF=# onClick='ejs_aff_photos("+(num+1)+");return(false)'>Suivant ></A>\";
    		document.getElementById(\"ejs_photo_box\").innerHTML = \"<CENTER><IMG SRC='\"+ejs_photo[num]+\"' BORDER=0><BR>\"+ejs_fin+\"</CENTER>\";
    		}
    	}
    window.onload = new Function('ejs_aff_photos(0)')";
    


    Ce code ne me fait pas d'erreur, il s'affiche bien dans ma div galerie sauf que il m'affiche 0
    Voici le gros soucis que je rencontre, je n'arrive pas à intégrer ce code...

    Je peux vous mettre le code Javascript d'origine si vous le souhaitez ;)

    Merci d'avance à celui qui saura comment faire ^^

    EDIT : J'ai juste ajouté des \ pour enlever les erreurs php...
    Je pense que cette ligne aussi est fausse et je ne sais pas comment l'écrire...

    echo 'ejs_photo[$a] = 'photos/$file';';
    


    D'origine elle est comme ceci : (mais fait erreur pour moi)

    echo "ejs_photo[$a] = 'photos/$file';";
    
    • Partager sur Facebook
    • Partager sur Twitter
      8 septembre 2009 à 17:53:29

      Elle sert à quoi ta ligne 5 ?
      • Partager sur Facebook
      • Partager sur Twitter
        8 septembre 2009 à 18:13:44

        euh ligne 5 et 17 ouvre et ferme le php
        Elles servent à rien je confirme :D

        Mais j'ai toujours ce 0 qui s'affiche...

        J'ai bien le dossier photos sur mon ftp et il contient bien des images... ;)
        • Partager sur Facebook
        • Partager sur Twitter
          8 septembre 2009 à 20:49:48

          Le code php ne sera pas exécuté, et en plus de ça, il remplacera les variables par leurs valeurs, car tu as utilisé les quotes doubles.
          Donc soit c'est un code à exécuté directement et à ce moment là tu peux par exemple faire comme ceci :
          <?php
          $BLOCK_GALERIE .= "
          <DIV ID=ejs_photo_box></div>
          <script type=\"text/javascript\">
          ejs_photo = new Array;";
          $a = 0;
          $handle = opendir('photos'); 
          while (($file = readdir())!=false) { 
          	clearstatcache(); 
          	if($file!=".." && $file!=".") 
          		{
          		$BLOCK_GALERIE .= "ejs_photo[$a] = 'photos/" . $file . "';";
          		++$a;
          		}
          	}
          closedir($handle); 
          $BLOCK_GALERIE .= "
          function ejs_aff_photos(num)
          	{
          	if(document.getElementById)
          		{
          		ejs_fin = \"\";
          		if(num!=0)
          			ejs_fin += \"<A HREF=# onClick='ejs_aff_photos("+(num-1)+");return(false)'>< Précédent</A>     \";
          		if(num!=(ejs_photo.length-1))
          			ejs_fin += \"<A HREF=# onClick='ejs_aff_photos("+(num+1)+");return(false)'>Suivant ></A>\";
          		document.getElementById(\"ejs_photo_box\").innerHTML = \"<CENTER><IMG SRC='\"+ejs_photo[num]+\"' BORDER=0><BR>\"+ejs_fin+\"</CENTER>\";
          		}
          	}
          window.onload = new Function('ejs_aff_photos(0)')";
          

          mettre les ++ avant la variable est plus rapide pour le même résultat (même si ça ne fait pas exactement la même chose ;) )
          Et ta ligne
          echo 'ejs_photo[$a] = 'photos/$file';';
          ne peut pas marcher, cf ma correction...
          ;)
          • Partager sur Facebook
          • Partager sur Twitter
            8 septembre 2009 à 22:41:45

            Re salut à tous :D

            Merci beaucoup pour le code en affichage direct (c'est ce que je cherchais à faire) ;)

            le soucis c'est que dans les divs du site, j'ai ma tribune libre qui s'affiche à la place de la galerie avec ton code et sans le code ma tribune libre est ou elle doit être ^^

            Surement à cause du javascript ou parce que le code nomme une div ?

            <DIV ID=ejs_photo_box></div>
            


            EDIT : C'est pas à cause de la div ejs_photo_box j'ai testé :D
            • Partager sur Facebook
            • Partager sur Twitter
              9 septembre 2009 à 13:54:39

              peut-être parce que tu ne ferme pas la balise script ?
              <?php
              $BLOCK_GALERIE .= "
              <DIV ID=ejs_photo_box></div>
              <script type=\"text/javascript\">
              ejs_photo = new Array;";
              $a = 0;
              $handle = opendir('photos'); 
              while (($file = readdir())!=false) { 
              	clearstatcache(); 
              	if($file!=".." && $file!=".") 
              		{
              		$BLOCK_GALERIE .= "ejs_photo[$a] = 'photos/" . $file . "';";
              		++$a;
              		}
              	}
              closedir($handle); 
              $BLOCK_GALERIE .= "
              function ejs_aff_photos(num)
              	{
              	if(document.getElementById)
              		{
              		ejs_fin = \"\";
              		if(num!=0)
              			ejs_fin += \"<A HREF=# onClick='ejs_aff_photos("+(num-1)+");return(false)'>< Précédent</A>     \";
              		if(num!=(ejs_photo.length-1))
              			ejs_fin += \"<A HREF=# onClick='ejs_aff_photos("+(num+1)+");return(false)'>Suivant ></A>\";
              		document.getElementById(\"ejs_photo_box\").innerHTML = \"<CENTER><IMG SRC='\"+ejs_photo[num]+\"' BORDER=0><BR>\"+ejs_fin+\"</CENTER>\";
              		}
              	}
              window.onload = new Function('ejs_aff_photos(0)');
              </script>";
              

              Mais j'imagine que ça tu l'as déjà fait sinon tu n'aurait rien d'afficher après...
              Enfin je suis pas trop sur donc ...
              ;)
              • Partager sur Facebook
              • Partager sur Twitter
                9 septembre 2009 à 20:23:35

                sa marchera pas je vais coder en php le même principe :D
                • Partager sur Facebook
                • Partager sur Twitter
                  9 septembre 2009 à 22:54:11

                  :euh: la tu ne mettais pas ça dans un fichier js, si ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 septembre 2009 à 6:32:14

                    non dans une page .php :D

                    J'ai un template.php qui contient des div's
                    dans une div "galerie" j'avais <? echo $BLOCK_GALERIE ?>

                    dans ma page espaceclient.php (accès une fois connecté au site)
                    le code prévu ou il devait être avec donc
                    $BLOCK_GALERIE = "le code ci dessus";

                    la en fait sur le site ou doit figurer la galerie il m'affiche :

                    ejs_photo = new Array;ejs_photo[0] = 'photos/1bis.jpg';ejs_photo[1] = 'photos/EnceinteSipSi.jpg';0
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 octobre 2009 à 0:29:02

                      Petit up parce que mon soucis est toujours la et je vois vraiment pas comment le rêglé :D
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Variable php contenant code javascript

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown