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

Langage PHP Discussion :

insertion du javascript dans PHP (et tableau)


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut insertion du javascript dans PHP (et tableau)
    Bonjour,

    J’essaie d'exécuter un code javascript en passant déclarant un tableau javascript par du php car à terme je souhaite récupérer le contenu d'un répertoire images/diaporama (en php), le mettre dans un tableau php.
    Et transformer ce tableau PHP en Tableau javascript pour que ma fonction javascript changeimages() mis sur le onload du body de ma page html affiche en boucle le contenu de mon répertoire images/diaporama.

    J'ai testé ma fonction javascript en mettant en dur le chemin de chaque image de mon diaporama et il fonctionne bien.
    Mais comme le contenu de ce répertoire est voué à changer régulièrement, je veux récupérer le contenu dans un tableau php (transmis ensuite dans le tableau javascript appelé par ma fonction changeimages()).

    J'ai trouvé un modèle de code sur développez.net que j'ai réadapté, mais ça ne fonctionne pas, alors vous, plus expérimentés que moi (débutante et PHP et javascript), j'aurai besoin d'un petit coup de main.

    Voici le code de mon fichier index.php (qui affiche normalement le diaporama) :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Grandvoinet Frédéric - Couvreur Zingueur</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<?php 
    		$monTableauPHP = array("images/diaporama/1.jpg", "images/diaporama/2.jpg","images/diaporama/3.jpg"); 
     
     
    		function construisTableauJS($tableauPHP, $nomTableauJS){
    			echo "var ".$nomTableauJS." = new Array();" ;
    			for($i = 0; $i < count($tableauPHP); $i++){
    				echo $nomTableauJS."[".$i."] = '".$tableauPHP[$i]."';";
    			}
    			return;
    		}
    		?>
     
    		<script type="text/javascript" src="script_grandvoinet.js">
    		<?php echo construisTableauJS($monTableauPHP, "monTableauJS");?>
    		</script> 
     
     
     
       </head>
        <body onLoad="changeimages()">
     
    		<img id="ima" name="ima" src="" alt="" /><noscript><a href="#">ajax</a></noscript>
     
       </body>
    </html>
    et voici le code de ma fonction changeimages() (javascript) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var cpt=0;
    function changeimages()
    {
    	document.getElementById("ima").src=monTableauJS[cpt];
    	cpt++;
    	if(cpt>=monTableauJS.length) cpt=0;
    	setTimeout("changeimages()",3000);
    }

    Quand ma page index.php s'affiche, ça met un carré avec une croix dedans comme s'il n'y avait pas d'image à afficher alors que les images sont bien au bon endroit.
    J'ai testé le resultat renvoyé par ma fonction php construisTableauJS(). Et c'est correct.
    J'ai aussi mis la balise <script> dans la balise PHP en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<script type='text/javascript' src='script_grandvoinet.js'>";
    et en mettant tout le corps de ma fonction javascript (avec des echo php) dans la balise script directement, mais j'aboutie au même résultat !

    Quelqu'un aurait une idée pourquoi mes images ne s'affiche pas ?
    Ai-je utilisé la bon syntaxe ?

    Je vous remercie d'avance.

    boubou_s

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    , ça met un carré avec une croix dedans comme s'il n'y avait pas d'image à afficher alors que les images sont bien au bon endroit.
    Regarde la propriété de l'element pour voir ce qui cloche.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    bonjour sabotage,

    je ne comprends pas trop ta réponse (je débute)
    Mais le diaporama javascript fonctionne très bien lorsque je n'utilise pas le PHP.
    Dès que j'ai voulu mettre le PHP que ça ne fonctionnait plus.
    Je pense qu'il y a un problème dans le code PHP mais je ne vois pa quoi.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Alors ça y est, j'ai réussi.
    J'ai mis tout le script javascript dans un fichier script_jsp.php.
    Qui donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    echo construisTableauJS($monTableauPHP, "monTableauJS");
     
    echo "var cpt=0;";
    echo "function changeimages()";
    echo "{";
    echo "	document.getElementById('ima').src=monTableauJS[cpt];";
    echo "	cpt++;";
    echo "	if(cpt>=monTableauJS.length) cpt=0;";
    echo "	setTimeout('changeimages()',3000);";
    echo "}";
     
    ?>
    Et ma page index.php devient cela :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>toto</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<?php 
    		$monTableauPHP = array("images/diaporama/1.jpg", "images/diaporama/2.jpg","images/diaporama/3.jpg"); 
     
     
    		function construisTableauJS($tableauPHP, $nomTableauJS){
    			echo "var ".$nomTableauJS." = new Array();" ;
    			for($i = 0; $i < count($tableauPHP); $i++){
    				echo $nomTableauJS."[".$i."] = '".$tableauPHP[$i]."';";
    			}
    			return;
    		}
    		?>
     
    		<script type="text/javascript" >     
    		<?php include ("script_jsp.php");?>
    		</script> 
     
     
     
       </head>
        <body onLoad="changeimages()">
     
    		<img id="ima" name="ima" src="" alt="" /><noscript><a href="#/">ajax</a></noscript>
     
       </body>
    </html>
    Ce qui a été modifié est la partie de la balise script.
    Je ne comprends toujours pas pourquoi ça ne fonctionnait pas avant.
    Mais, comme ça ça fonctionne donc je cloture ce poste.
    Merci tout de même Sabotage.

  5. #5
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonsoir

    une fois ta page html créee as tu regardé le code source voir ce que php t'as créé comme tableau js ?


    Au passage :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for($i = 0; $i < count($tableauPHP); $i++){
    	echo $nomTableauJS."[".$i."] = '".$tableauPHP[$i]."';";
    }

    A eviter le for pour un tableau, privilégie le foreach bien plus optimisé ou alors sors le count($tableauPHP) dans une variable sinon il est recalculé a chaque tour de boucle

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    oui j'ai regardé le source html que php m'a généré. Au début j'avais affiché par un echo php dans le htlm le résultat de ma fonction php qui construit le tableau JS et c'était correct.

    Quand j'avais mis le code suivante, je n'ai que le déclaration du tableau et son contenu qui était affiché dans la partie script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript" src="script_grandvoinet.js">
    		<?php echo construisTableauJS($monTableauPHP, "monTableauJS");?>
    		</script>
    Et maintenant que j'ai tout mis dans un fichier php que j'appelle par un include dans ma page. le view source affiche la déclaration du tableau JS, son contenu et la fonction JS.

    Mais au niveau sécurité ce n'est pas terrible !?? de voir le contenu du tableau !!!?

    boubou_s

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    effectivement, je suis d'accord pour l'optimisation de mon code.
    merci.

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

Discussions similaires

  1. [PHP-JS] insertion de javascript dans PHP
    Par marie4449 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/04/2007, 17h03
  2. [PHP-JS] recuperer une variable javascript dan php
    Par hammag dans le forum Langage
    Réponses: 2
    Dernier message: 07/08/2006, 14h00
  3. [PHP-JS] Insertion Javascript dans PHP
    Par andrewwww dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/04/2006, 17h04
  4. [PHP-JS] Intégration code Javascript dans PHP
    Par tilou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/04/2006, 15h26
  5. [PHP-JS] retour valeur javaScript dans php
    Par Tempotpo dans le forum Langage
    Réponses: 6
    Dernier message: 06/04/2006, 11h35

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