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

JavaScript Discussion :

Interaction PHP - JS


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 72
    Points : 34
    Points
    34
    Par défaut Interaction PHP - JS
    Bonjour,

    J'ai un petit problème pour faire discuter Javascript avec PHP.

    J'ai dans un premier temps, une requête MySQL qui me remplis un Array avec des id provenant de ma base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = 'SELECT id FROM photos WHERE id_galerie='.$id;
    $req = mysql_query($sql);
    while ($data = mysql_fetch_array($req)) {
          $ids[] = $data['id'];
    }
    Dans un 2ème temps, je dois appeler une fonction javascript nommée photo en lui passant 1 de mes id

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<script>photo('.$ids[0].')</script>';
    Jusqu'à là, tout fonctionne, je lui passe le premier id donc celui qui est a la position 0 de mon Array.

    Maintenant, j'aimerai mettre 2 boutons, "précédent" et "suivant" afin de faire défiler mes photos en parcourant mon Array, donc je pourrai appeler ma fonction photo() en faisant +1 et -1, mais je ne voit pas comment actualiser l'id d'affichage sur le onclick de précédent et suivant.

    J'espère avoir été clair

    Merci

  2. #2
    Membre actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 155
    Points : 275
    Points
    275
    Par défaut
    tout d'abord je pense que ton problème est au niveau de la compréhension du lien entre php et js. Php tourne du côté serveur et js du côté client, càd que ton php prépare tout ce qui va être envoyé au navigateur et une fois que tu es du côté client (exécution du js) tu peux plus te servir de ce que tu a fait en php.

    Par contre ce que tu peux faire c'est de générer du js dynamiquement à partir de ton php, places-toi dans l'optique suivante : mon js ne peux plus accéder à ce qui a été fait en php (laissons le cas ajax à part), donc il faut que le js contienne en quelque sorte une copie en js de ce dont tu aimerais te servir mais qui est en php.

    concrètement tu ferais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql = 'SELECT id FROM photos WHERE id_galerie='.$id;
    $req = mysql_query($sql);
    $tabJs='var tabId = new Array();';
    while ($data = mysql_fetch_array($req)) {
          $ids[] = $data['id'];
          $tabJs.= 'tabId.push(\''.$data['id'].'\');';
    }
    $tabJs contient une chaîne de caractères qui correspond à la déclaration et au remplissage d'un tableau en js de tes ids de php.
    ce qui donnerai en js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var tabId = new Array();
    tabId.push('1');
    tabId.push('2');
    ...
    après il faut en fait que tu gardes en mémoire dans quel indice de ton tableau en js tu te trouves
    étant donné que ta fonction photo reçoit un id de la photo tu peux faire deux fonctions pour afficher la photo suivante et précédente

    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
     
    function nextPhoto(){
        //on vérifie qu'on ne va pas au delà de la limite du tableau
        if(indice == tabId.length-1)
            return;
        indice++;
        photo(tabId[indice]);
    }
     
    function prevPhoto(){
        //on vérifie qu'on n'est pas déjà à la première photo
        if(indice ==0)
            return;
        indice--;
        photo(tabId[indice]);
    }
    C'est vrai qu'il n'est pas évident de voir la limite entre le php et le js quand on n'a pas l'habitude car quand on code on code tout (php,js) au même temps

    j'espère que ca te servira
    bon code

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 72
    Points : 34
    Points
    34
    Par défaut
    Merci beaucoup pour cette réponse très claire !

    Je vais continuer a creuser avec ces nouveaux éléments.

Discussions similaires

  1. Boite de dialogue et interaction PHP et HTML
    Par casavba dans le forum Langage
    Réponses: 13
    Dernier message: 11/09/2008, 11h20
  2. interaction php & flash
    Par Ptilutin dans le forum Flash
    Réponses: 1
    Dernier message: 19/06/2008, 22h23
  3. Interaction PHP et Javascript
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 04/07/2007, 11h07
  4. interaction php->js
    Par ChrisLeCodeur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/03/2007, 19h33
  5. [PHP-JS] Interaction PHP / Javascript
    Par vivian dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2006, 23h56

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