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 :

[PHP/JS] nieme probleme d'imbrcation dans les deux l


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut [PHP/JS] nieme probleme d'imbrcation dans les deux l
    Bonjour, j'ai regardé au maximum dans le forums, mais il ne me semble pas que l'on traite le probleme que je rencontre.

    en fait, j'ai un tableaux PHP qui contient des string (noms de fichiers de photo).
    j'aimerai par une fonction javascript accéder a la xieme case de mon tableau sur chqau clic de souris sur un bouton up et un bouton down.

    j'ai donc initialisé un compteur php
    $indexPhoto = 0;

    voici ma fonction javascript
    <script language="JavaScript" type="text/javascript">

    function changePic(pDefil){

    if (pDefil=='up') {
    if (indexPic==<?php echo(count($ListFiles)-1);?>){
    indexPic = 0;
    <?php $indexPhoto = 0;?>
    }else{
    indexPic = indexPic + 1;
    <?php $indexPhoto++;?>
    }
    }else{
    if (indexPic==0){
    indexPic = <?php echo(count($ListFiles)-1);?>;

    }else{
    indexPic = indexPic - 1;

    }
    } // on a déterminé quel index du tableau php il fallait prendre.
    alert('<?php echo($indexPhoto);?>');
    }

    var indexPic = 0; // variable globale d'indexation de la photo
    </script>
    ainsi que son appel:
    onclick="changePic('up');"
    si je clic une fois sur up, j'affiche bien 1 qui est mon index 0 actuel + 1 pour une action up.
    seulement qd je clic une seconde fois sur up il m'affiche toujours 1, cela ne passe jamais a 2.... comem si ma variable php ne changeait pas.

    Y a-t-il un vice qui m'aurait échappé ?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Le PHP est exécuté du côté serveur, tandis que le javascript du côté client.
    Donc quand tu cliques pour exécuter la fonction changePic, seul le javascript sera utilisé, le PHP ayant déjà été exécuté AVANT l'affichage de la page dans ton browser.
    Fais un "View Source" dans ton browser et tu te rendra compte qu'il n'y apparait pas de PHP.
    Donc tu ne peux pas modifier la variable PHP via javascript (en tout cas sans recharger la page).
    Tes ligne <?php $indexPhoto = 0;?> ou <?php $indexPhoto++;?> ne servent donc à rien.

    Par contre l'utilisation de PHP pour initialiser le nombre d'éléments dans ton tableau est une bonne idée, mais après il faut uniquement jouer avec du javascript (qui m'a l'air correct soit dit en passant).

  3. #3
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut et bonnes fêtes,

    Quand tu arrive sur ta page, les variables php (traitées par le serveur) ont une valeur définie.

    Si il n'y a pas de renvoi, elle ne changeront pas.

    Affiche le code source de ta page et tu y verras plus clair.

    N'oublie jamais que php s'exécute coté serveur.

    A+

    [edit] Trop tard

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 234
    Points : 8 497
    Points
    8 497
    Billets dans le blog
    17
    Par défaut
    Effectivement, PHP et JS ne peuvent interragir de la sorte.
    La solution : initialise un tableau JS à partir de ton tableau PHP, et travaille dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ListFilesJS = new Array("<?php echo implode('", "', $ListFilesPHP) ?>") ;
    // Affiche la source pour voir si le résultat est Ok

  5. #5
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut

    mais quel boulet je suis !!!

    merci ca marche impec le passsage par le tableaux JS

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

Discussions similaires

  1. probleme des apostrophes (') dans les requetes!
    Par le_style dans le forum JDBC
    Réponses: 12
    Dernier message: 20/06/2007, 11h40
  2. [LDAP] Problèmes d'accent dans les valeurs
    Par Jack_le_Boulet dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 28/04/2006, 20h56
  3. [hardware][hdd] probleme de lag dans les jeux
    Par graphicsxp dans le forum Composants
    Réponses: 3
    Dernier message: 21/02/2006, 00h51
  4. probleme de redirection dans les frames
    Par paricard dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/02/2006, 00h57
  5. [FLASH 8] Probleme de ciblage dans les fonctions
    Par abenhass dans le forum Flash
    Réponses: 4
    Dernier message: 29/12/2005, 13h29

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