Visioneuse d'image pb de naviquation sur le tab source de données

Signaler
Messages postés
159
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Messages postés
159
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Bonjour ! Dans le cadre du developpement d'un site Internet de présentation de produit, je dois insérer une visionneuse d'image coté visuel (partie non administré : pr les clients)

J'ai trouvé une source sur ce fofo :

//Code de la source :

var nom = new objet ("produit_34.jpg", "produit_35.jpg", "produit_4.jpg");

function objet()
{
this.length = objet.arguments.lengthfor (var i 0; i < this.length; i++) this[i+1] objet.arguments[i]
}

function suivante(){    numero +1;    if (numero nom.length + 1) numero = 1;
 document.image.src = dossier+nom[numero];
}

function precedente()
{    numero -1;    if (numero 0) numero = nom.length;
    document.image.src = dossier+nom[numero];
}

function changer()
{    numero +1;    if (numero nom.length + 1) numero = 1;
    document.image.src = dossier+nom[numero];
    roll=setTimeout("changer()", 1500);
}

function initial()
{
    window.clearTimeout(roll);  document.image.src = dossier+nom[numero];
}

Voila. J'ai modifier la partie var comme suit :

var nom = new objet (<?php     tab_img(); ?>);

fonction tab_img :

function tab_img2()
{
    $tab = Array();
    $images = Images::findAll();       
       
    $i=1;
   
    if($img1 = mysql_fetch_object($images))
    {
        $tab[$img1->machine][$i] = $img1->image;
        $i++;
    }
   
    while($img = mysql_fetch_object($images))
    {   
        if($img->machine == $img1->machine)
        {
            $tab[$img->machine][$i] = '"'.$img->image.'"';
            $i++;
        }
        else
        {
            $i=1;
            $tab[$img->machine][$i] = '"'.$img->image.'"';
            //On met dans img1 l'image de la nouvelle machine puis on va insérer tout les images du nouveau type de machine (id différent)
            $img1 = $img;
            $i++;
        }
    }
    print_r($tab);
   
    return $tab;
}

Malheuresement coté html
id.');">

> " onClick="suivante('.$ligne->id.');">

Il ne se passe rien quand je clique sur ces boutons.

Si quelqu'un a besoin de code supplémentaire car il pense pouvoir m'aider, je m'en occuperai rapidement (je vérifirais présence de nouveau message matin midi et fin de journée)

Merci d'avance ; )

5 réponses

Messages postés
159
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010

Arg je voulais éditer pour mettre en forme et je trouve pas dsl ^^

Merci d'avance ; )
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
j'ai du mal avec(j'ai pas encore regardé le php) : il sert à quoi objet() ??
quant aux autres fonctions : tu utilises des variables non définies (en tous cas, dans l'extrait de code que tu montres).
Et puis tu passes des paramètres aux fonctions suivante() et  precedente() mais tu ne les utilises pas...?
Bref, j'ai du mal à comprendre comment un code comme celui-ci peut fonctionner, moi. T'es sûr que tu l'utilises correctement ? Où est le code original que tu as trouvé ici ?
Messages postés
159
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010

 Je ne me rappel plus exactement ou j'ai trouvé ce code :s

En fait la variable $ligne->id c'est l'id retourné par une requete. Ensuite il y a ces variables :
var bauto = 0;
var dossier="./Style/images/";
var numero = 1;

Je pense que la fonction objet permet de créer un pseudo tableau. L'image pointe sur dossier/letableau[numero] ou numero s'incremente quand on clic sur suivant.

Je pense que la solution doit être dans la fonction objet : réussir à faire un truc de ce genre

function objet()
{
    this.length = objet.arguments.length    for (var i 0; i < this.length; i++) this[i+1] objet.arguments[i]
}
deviendrais

function objet(numprod)
{
    this.length = objet.arguments.length    for (var i 0; i < this.length; i++) this[i+1] objet.arguments[numProd][i]
}

ou encore

function objet($tab, numprod)
{
    this.length = objet.arguments.length    for (var i 0; i < this.length; i++) this[i+1] tab[prod][i]
}

En fait je récupère tout les produits de ma base avec fonction tabImg2.

Je créer un objet exploitable avec la fction objet et voilà
Merci d'avance ; )
Messages postés
159
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010

Pour le paramètre j'ai mis une version o je tentais de faire ca :

function suivante(parametre_passe_dans_html){    numero +1;    if (numero nom.length + 1) numero = 1;
 document.image.src = dossier+nom[parametre_passe_dans_html][numero];
}

function precedente(parametre_passe_dans_html)
{    numero -1;    if (numero 0) numero = nom.length;
    document.image.src = dossier+nom[parametre_passe_dans_html][numero];
}
Histoire d'essayer de recueillir des info du tableau

Merci d'avance ; )
Messages postés
159
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010

Bon j'abandonne déjà :  je me dit que le temps de trouver le pb, j'aurais largement le temps de trouver une autre visionneuse et c'est chose faite :

http://webmaster.lycos.fr/tips/987669141/

elle correspond moins à mes attentes mais je m'en contenterais.

Mais si jamais qq1 connait la réponse aux pb je suis toujours intéréssé.
Merci d'avance ; )