Problème de concaténation d'URL [Résolu]

Signaler
Messages postés
20
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
1 juin 2011
-
Messages postés
20
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
1 juin 2011
-
Bonjour tout le monde,

Merci d'avance pour ceux qui auront la peine de lire, de réfléchir et bien sûr de résoudre le problème auquel je suis confronté.

Tout d'abord, j'ai une fonction JS qui me permet de faire défiler mes images à l'aide d'un tableau. (var diapo = new Array.....voir la fonction ci-dessous)

Ces images défilent mais ont aussi un lien qui permet à un client de voir ces partenaires, donc ces images défilantes sont cliquables.

Je n'en dis pas plus, voici la fonction JS:


----------------------------------------------
[i]
// Déclaration des variables globales/i
var diapo = new Array;
var tab_url = new Array;
var noDiapo = 0;
var noUrl = 0;

[i]/**
* Fonction qui met la liste des images (contenu dans le champ caché de la page HTML générée
* dans le tableau nommé diapo
* et la liste des URL dans le
* tableau nommé tab_url
* *//i
function SplitTableau()
{
var liste_images = "";
var liste_liens = "";

// On récupère la liste des fichiers contenue dans le champ caché de la page HTML
liste_images = document.getElementById("liste_fichiers").value;

// On récupère la liste des url contenue dans le champ caché de la page HTML
liste_liens = document.getElementById("liste_url").value;

diapo = liste_images.split('//'); // On divise cette liste d'après les séparateurs '//'
tab_url = liste_liens.split('//');

// On compte le nombre d'éléments présents dans le tableau
noDiapo = diapo.length - 1;
noUrl = tab_url.length - 1;
}

[i]/**
* Fonction qui change l'image dans la "div" nommée "diaporama"
*//i
function ChangeImage()
{
if (noDiapo == -1)
{
noDiapo = (diapo.length - 1);
}
if (noUrl == -1)
{
noUrl = (tab_url.length - 1);
}
// Si l'élément diaporama est présent dans la page PHP
if (document.getElementById("diaporama"))
{
// On modifie le contenu PHP de la div en y mettant une balise ';
noDiapo = noDiapo - 1; <italique>// On décrémente le no de Diapo pour en afficher une autre le prochain coup

noUrl = noUrl - 1; // On décrémente le no de l'URL pour en afficher une autre le prochain coup
}
setTimeout("ChangeImage()", 5000); // La fonction sera rappelée toutes les 5 sec.
}

----------------------------------------------

Et voici la page PHP abrégée + appel du JS :


----------------------------------------------

<script type ="text/javascript">
window.onload = function()
{
SplitTableau();
ChangeImage();
[i]// ...
// appel d'autres fonctions/i
};
</script>

<?php

echo '

';

// accès à la BDD
define("SERVEUR", "db2843.1and1.fr");
define("LOGIN", "dbo355112866");
define("MDP", "dimitri90");
define("MABASE", "db355112866");

// connexion au serveur de BDD MySql
$connexion = mysql_connect(SERVEUR, LOGIN, MDP);

// choix de la base si connexion au serveur réussie
if ($connexion)
// connexion réussie
{
mysql_select_db(MABASE, $connexion);
}
else
{
echo 'Problème à la connexion !';
}
echo '
';


// récupération des images et des liens dans la table IMAGE_PUB
$requete "SELECT * FROM IMAGE_PUB WHERE AffichageImgPub 1 and CouplagePub = 1;";
// exécution de la requête à travers la connexion et récupération du recordset
$rsDiaporama = mysql_query($requete, $connexion);
$uneDiapo = mysql_fetch_assoc($rsDiaporama);
$liste_images = "";

// ajout d'une variable pour contruire la liste de liens
$liste_liens = "";
$cpt_images = 0;

while ($uneDiapo) {
$nomfic = $uneDiapo["LienImgPub"];
$url = $uneDiapo["LienPub"];

if ($cpt_images > 0) {
$liste_images = $liste_images . "//";
$liste_liens = $liste_liens . "//";
}
$liste_images = $liste_images . $nomfic; // concaténation du fichier image
$liste_liens = $liste_liens . $url; // concaténation de l'url

// passage au n-uplet suivant
$uneDiapo = mysql_fetch_assoc($rsDiaporama);

// incrémentation du compteur
$cpt_images++;
}

// champ caché qui contiendra la liste des fichiers images
echo '';
// champ caché qui contiendra la liste des url
echo '';

[i]// fermeture connexion/i
mysql_close($connexion);

?>

2 réponses

Messages postés
20
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
1 juin 2011

J'ai moi-même résolu mon problème.
Je donne la source si quelqu'un souhaite l'avoir (le script PHP est bon) :

Voici le JS :

// Déclaration des variables globales
      var diapo = new Array;
      var tab_url = new Array;
      var noDiapo = 0;
      var noUrl = 0;

      /**
       * Fonction qui met la liste des images (contenu dans le champ caché de la page HTML générée
       * dans le tableau nommé diapo
       * et la liste des URL dans le
       * tableau nommé tab_url
       * */
      function SplitTableau()
      {
          var liste_images = "";
          var liste_liens = "";

          // On récupère la liste des fichiers contenue dans le champ caché de la page HTML
          liste_images = document.getElementById("liste_fichiers").value;
          
          // On récupère la liste des url contenue dans le champ caché de la page HTML
          liste_liens = document.getElementById("liste_url").value;

          diapo = liste_images.split('//');     // On divise cette liste
          tab_url = liste_liens.split('//');    // d'après les séparateurs '//'

          // On compte le nombre d'éléments présents dans le tableau
          noDiapo = diapo.length - 1;
          noUrl = tab_url.length - 1;
      }

      /**
       * Fonction qui change l'image dans la "div" nommée "diaporama"
       */
      function ChangeImage()
      {
          if (noDiapo == -1)
              {
                  noDiapo = (diapo.length - 1);
              }
              if (noUrl == 0)
              {
                  noUrl = (tab_url.length - 1);
              }
              // Si l'élément diaporama est présent dans la page PHP
            if (document.getElementById("diaporama"))
            {
                // On modifie le contenu PHP de la div en y mettant une balise ';
                noDiapo = noDiapo - 1;  // On décrémente le no de Diapo pour en afficher une autre le prochain coup
                noUrl = noUrl - 1;      // On décrémente le no de l'URL pour en afficher une autre le prochain coup
            }
            setTimeout("ChangeImage()", 5000);      // La fonction sera rappelée toutes les 5 sec.
      }
Messages postés
20
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
1 juin 2011

Reformulation :

Bonjour tout le monde,

Merci d'avance pour ceux qui auront la peine de lire, de réfléchir et bien sûr de résoudre le problème auquel je suis confronté.

Tout d'abord, j'ai une fonction JS qui me permet de faire défiler mes images à l'aide d'un tableau. (var diapo = new Array.....voir la fonction ci-dessous)

Ces images défilent mais ont aussi un lien qui permet à un client de voir ces partenaires, donc ces images défilantes sont cliquables.

En fait il y a une sorte de concaténation de l'URL.

Je n'en dis pas plus, voici la fonction JS:

// Déclaration des variables globales
      var diapo = new Array;
      var tab_url = new Array;
      var noDiapo = 0;
      var noUrl = 0;

      /**
       * Fonction qui met la liste des images (contenu dans le champ caché de la page HTML générée
       * dans le tableau nommé diapo
       * et la liste des URL dans le
       * tableau nommé tab_url
       * */
      function SplitTableau()
      {
          var liste_images = "";
          var liste_liens = "";

          // On récupère la liste des fichiers contenue dans le champ caché de la page HTML
          liste_images = document.getElementById("liste_fichiers").value;
          
          // On récupère la liste des url contenue dans le champ caché de la page HTML
          liste_liens = document.getElementById("liste_url").value;

          diapo = liste_images.split('//');     // On divise cette liste
          tab_url = liste_liens.split('//');    // d'après les séparateurs '//'

          // On compte le nombre d'éléments présents dans le tableau
          noDiapo = diapo.length - 1;
          noUrl = tab_url.length - 1;
      }

      /**
       * Fonction qui change l'image dans la "div" nommée "diaporama"
       */
      function ChangeImage()
      {
          if (noDiapo == -1)
              {
                  noDiapo = (diapo.length - 1);
              }
              if (noUrl == -1)
              {
                  noUrl = (tab_url.length - 1);
              }
              // Si l'élément diaporama est présent dans la page PHP
            if (document.getElementById("diaporama"))
            {
                // On modifie le contenu PHP de la div en y mettant une balise ';
                noDiapo = noDiapo - 1;  // On décrémente le no de Diapo pour en afficher une autre le prochain coup
                noUrl = noUrl - 1;      // On décrémente le no de l'URL pour en afficher une autre le prochain coup
            }
            setTimeout("ChangeImage()", 5000);      // La fonction sera rappelée toutes les 5 sec.
      }




Et voici la page PHP abrégée + appel du JS :


<script type="text/javascript">
    window.onload=function()
    {
        SplitTableau();
        ChangeImage();
        // ...
        // appel d'autres fonctions
    };
</script>



<?php

echo '

';

// accès à la BDD
define("SERVEUR", "db2843.1and1.fr");
define("LOGIN", "dbo355112866");
define("MDP", "dimitri90");
define("MABASE", "db355112866");

// connexion au serveur de BDD MySql
$connexion = mysql_connect(SERVEUR, LOGIN, MDP);

// choix de la base si connexion au serveur réussie
if ($connexion)
// connexion réussie
{
    mysql_select_db(MABASE, $connexion);
}
else
{
    echo 'Problème à la connexion !';
}
echo '
';


// récupération des images et des liens dans la table IMAGE_PUB
$requete "SELECT * FROM IMAGE_PUB WHERE AffichageImgPub 1 and CouplagePub = 1;";
// exécution de la requête à travers la connexion et récupération du recordset
$rsDiaporama = mysql_query($requete, $connexion);
$uneDiapo = mysql_fetch_assoc($rsDiaporama);
$liste_images = "";

// ajout d'une variable pour contruire la liste de liens
$liste_liens = "";
$cpt_images = 0;

while ($uneDiapo) {
    $nomfic = $uneDiapo["LienImgPub"];
    $url = $uneDiapo["LienPub"];

    if ($cpt_images > 0) {
        $liste_images = $liste_images . "//";
        $liste_liens = $liste_liens . "//";
    }
    $liste_images = $liste_images . $nomfic;    // concaténation du fichier image
    $liste_liens = $liste_liens . $url;     // concaténation de l'url

    // passage au n-uplet suivant
    $uneDiapo = mysql_fetch_assoc($rsDiaporama);

    // incrémentation du compteur
    $cpt_images++;
}

// champ caché qui contiendra la liste des fichiers images
echo '';
// champ caché qui contiendra la liste des url
echo '';

// fermeture connexion
mysql_close($connexion);

?>