Bonjour à tous,

J'utilise avec bonheur Dewslider sur la page d'accueil de mon site perso :

http://www.images-du-monde.fr

et j'aimerais maintenant pouvoir créer plusieurs fichiers xml (chacun avec un thème d'images différentes) qui se chargeraient de manière aléatoire lors de l'accès à la page d'accueil.

J'avais essayé ça, en rajoutant quelques lignes de php pour créer la variabilité, mais sans succès :


$nbxml=3;
$nomxml[1]="fr_istanbul.xml";
$nomxml[2]="fr_vietnam.xml";
$nomxml[3]="en_uz.xml";
srand((double)microtime()*1000000);
$affxml=rand(1,$nbxml);


<script type="text/javascript">
//<![CDATA[
AC_FL_RunContent( 'data','dewslider.swf?xml=rand(1,$nbxml)','type','application/x-shockwave-flash','width','470','height','350','vspace','35','bgcolor','#ffffff','menu','false','movie','dewslider?xml=rand(1,$nbxml)' ); //end AC code
//]]>
  </script>
  <noscript>
  <object data="dewslider.swf?xml=rand(1,$nbxml)" type="application/x-shockwave-flash" width="470" height="350" vspace="35">
    <param name="bgcolor" value="#ffffff" />
    <param name="menu" value="false" />
    <param name="movie" value="dewslider.swf?xml=rand(1,$nbxml)" />
  </object>


Je fais peut-être totalement fausse route et si quelqu'un a une idée sur la manière de procéder pour mettre en place ce chargement aléatoire, ce serait magnifique !

merci d'avance pour vos suggestions
Chris
Modifié par Taklamakan (02 Oct 2009 - 23:35)
Bonsoir,

Dans le code javascript il faut mettre le résultat du php et non le code qui permet de l'obtenir, qui ne sera de tout façons pas interpréter par js. (pas l'impression que ça soit bien clair tous ça :s).
Donc en gros à la place de
rand(1,$nbxml)


mettre
<?php echo $affxml;?>


Attention à ne pas mettre
<?php echo rand(1,$nbxml);?>

car le résultat peut changé au deuxième appel que tu fait plus bas Smiley cligne .
Modifié par jo_link_noir (28 Sep 2009 - 22:52)
Méthodologie: toujours vérifier dans le navigateur (Affichage > Code source de la page) quel est le code HTML généré par le PHP. Tu ne devrais plus trouver trace de code PHP, de fonctions ou de variables. Si tu en trouves, c'est que tu fais les choses de travers (et il faut prévoir d'apprendre les bases de PHP si ça n'est pas déjà fait).
Bonsoir jo_link_noir,

Tes explications sont très claires et cela semble tout à fait logique !

j'ai donc modifié mon code, testé, et cela ne marche pas encore, mais c'est déjà beaucoup plus cohérent.
Je vais pousser plus avant.

Merci pour le coup de main.
Modifié par Taklamakan (29 Sep 2009 - 21:59)
Bonsoir Florent

Merci pour ce point de méthodologie, je butais totalement sur la possibilité de vérifier le comportement du script.

j'ai essayé et effectivement je fais quelque chose de travers... J'ai démarré de manière un peu empirique et il faut que je m'imprègne plus des base de PHP.

Est-il également possible que le code php inséré dans ma page html ne soit pas "lu", parce que la configuration de mon hébergement ne le permet pas ?

Merci pour ton aide
Modifié par Taklamakan (29 Sep 2009 - 22:08)
Bonsoir,

En cherchant, je me suis rendu compte que dans sa configuration de base, mon serveur n'interprétait pas le PHP contenu dans ma page html...
Une fois ce problème réglé, en me penchant sur le code PHP, j'ai modifié le code du résultat du script de la sorte :

<object data="dewslider.swf?xml=<?php echo $nomxml[$affxml];?>"


et là, je récupère bien le nom de l'un de mes 3 fichiers xml, et ça marche parfaitement !

Merci encore de m'avoir mis sur la bonne voie.