Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2010, 13h50   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
Par défaut slider images, je n'arrive pas à intégrer une requête SQL

Boujour,
j'ai récupérer un script de slide d'images en js.
Le soucis c'est que je n'arrive pas à intégrer de requête sql dans ce script:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script language="JavaScript1.1">
 
//specify interval between slide (in mili seconds)
var slidespeed=3000
//specify images
 
var slideimages=new Array("photo/1.jpg","photo/2.jpg","photo/3.jpg")
//specify corresponding links
 
var imageholder=new Array()
var ie55=window.createPopup
for (i=0;i<slideimages.length;i++){
imageholder[i]=new Image()
imageholder[i].src=slideimages[i]
}
 
function gotoshow(){
window.location=slidelinks[whichlink]
}
 
//-->
</script>
Ma requête est simple du style:
Code :
1
2
3
4
$sql="SELECT * FROM photo" ;
$r = mysql_db_query($database, $sql);
while ($t=mysql_fetch_row($r)){
$cpt++;

Comment l'intégrer dans le javascript ?

Merci pour votre contribution.
budiartaaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 15h12   #2
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
<script language="JavaScript1.1">
 
var slidespeed = 3000 ;
 
<?php
$rqt = mysql_query("SELECT * FROM photo") ;
 
$i = 0 ;
 
$arrayJs = "var slideimages = new Array(" ;
 
while($tab = mysql_fetch_array($rqt))
     {
      $photo = $tab['champ_de_la_photo'] ;
     if($i == 0)
          {
           $arrayJs .= "'photo/".$photo."'" ;
          }
     else
          {
          $arrayJs .= ", 'photo/".$photo."'" ;
          }
     $i++ ;
     }
$arrayJs .= ") ;" ;
 
echo $arrayJs ;
?>
 
var imageholder = new Array() ;
var ie55 = window.createPopup ;
for (i=0;i<slideimages.length;i++){
imageholder[i] = new Image() ;
imageholder[i].src = slideimages[i] ;
}
 
function gotoshow(){
window.location = slidelinks[whichlink] ;
}
 
//-->
</script>
Voila une solution possible, attention ton javascript n'avait pas de ";".
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 16h04   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
Salut xess91,

je viens de tester ta solution mais je n'arrive pas à la faire tourner.
Peux-tu jeter un oeil sur ton code à nouveau et me dire si tu vois une erreur?
J'ai bien vérifier les noms de répertoire/champs concernés.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$link = mysql_connect($hostname, $username, $password);
$rqt = mysql_query("SELECT * FROM photo") ;
 
$i = 0 ;
 
$arrayJs = "var slideimages = new Array(" ;
 
while($tab = mysql_fetch_array($rqt))
     {
      $photo = $tab['id'] ;
     if($i == 0)
          {
           $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
          }
     else
          {
          $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
          }
     $i++ ;
     }
$arrayJs .= ") ;" ;
 
echo $arrayJs ;
?>
Merci pour ton aide.
budiartaaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 17h52   #4
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
Déjà il te manque la virgule pour séparer les données de ton tableau, tu as mal recopié...quelle que soit la condition ton if et else font la même chose, ça n'a pas de sens.

Code :
1
2
3
4
5
6
7
8
9
 
if($i == 0)
          {
           $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
          }
     else
          {
          $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
          }
Sinon qu'est ce que le echo $arrayJs écrit, une fois que tu as fait la correction ?
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 19h19   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
le echo renvoi :
Code :
var slideimages = new Array() ;
J'avais zappé la virgule mais elle n'a rien changée.
Désolé de t'embêter mais si tu vois autre chose fais moi savoir.
Merci.
budiartaaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 20h34   #6
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
Dans ce cas la, c'est que ta requête SQL renvoie rien et que tu ne rentres pas dans la boucle "while"...

Connais tu le php et le SQL? et as-tu compris la méthode que je te suggère ?

De plus sur l'exemple que tu montres tu sélectionnes aucune bdd SQL

ex:
Code :
1
2
3
4
5
6
 
mysql_connect("localhost", "root", "") ;
//
mysql_select_db("maBase") ;//absent
//
mysql_query("maRequete") ;
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 22h13   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
Ne pas arriver à integrer la requête c'est bien cela mon soucis.Evidemment la connexion passerait par un classique :

Code :
1
2
3
$link = mysql_connect($hostname, $username, $password);
$rqt = mysql_query("SELECT * FROM photo") ;
$r = mysql_db_query($database, $rqt);
tout le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<script language="JavaScript1.1">
<!--
//Pixelating Image slideshow
//Copyright Dynamic Drive 2001
//Visit http://www.dynamicdrive.com for this script
var slidespeed = 3000 ;
 
<?php
$link = mysql_connect($hostname, $username, $password);
$rqt = mysql_query("SELECT * FROM photo") ;
$r = mysql_db_query($database, $rqt);
 
$i = 0 ;
 
$arrayJs = "var slideimages = new Array(" ;
 
while($tab = mysql_fetch_array($r))
     {
      $photo = $tab['id'] ;
     if($i == 0)
          {
           $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
          }
     else
          {
          $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
          }
     $i++ ;
     }
$arrayJs .= ") ;" ;
 
echo $arrayJs ;
?>
 
var imageholder = new Array() ;
var ie55 = window.createPopup ;
for (i=0;i<slideimages.length;i++){
imageholder[i] = new Image() ;
imageholder[i].src = slideimages[i] ;
}
 
function gotoshow(){
window.location = slidelinks[whichlink] ;
}
 
//-->
</script>
dans le <body>:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div> 
<a href="javascript:gotoshow()"><img src="" name="slide" border=0 style="filter:progid:DXImageTransform.Microsoft.Pixelate(MaxSquare=15,Duration=1)"></a> 
 
<script language="JavaScript1.1">
<!--
var whichlink=0
var whichimage=0
var pixeldelay=(ie55)? document.images.slide.filters[0].duration*800 : 0
function slideit(){
if (!document.images) return
if (ie55) document.images.slide.filters[0].apply()
document.images.slide.src=imageholder[whichimage].src
if (ie55) document.images.slide.filters[0].play()
whichlink=whichimage
whichimage=(whichimage<slideimages.length-1)? whichimage+1 : 0
setTimeout("slideit()",slidespeed+pixeldelay)
}
slideit()
 
//-->
</script>
</div>
Mais comme je ne suis pas programmeur chevronné, j'ai du mal à interpréter les erreurs. Et là je vois bien qu'on ne rentre pas dans la boucle mais je ne sais pas vraiment comment faire. Encore une fois si tu as une idée je suis preneur. Merci.
budiartaaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 23h05   #8
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
ok je comprends, alors essaies ceci dans un fichier à part :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
<?php
mysql_connect($hostname, $username, $password);
mysql_select_db($database) ;
 
$rqt = mysql_query("SELECT * FROM photo")or die(mysql_error()) ;
 
$i = 0 ;
 
$arrayJs = "var slideimages = new Array(" ;
 
while($tab = mysql_fetch_array($rqt))
     {
      $photo = $tab['id'] ;
     if($i == 0)
          {
           $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
          }
     else
          {
          $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
          }
     $i++ ;
     }
$arrayJs .= ") ;" ;
 
echo $arrayJs ;
?>
ou

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
<?php
mysql_connect($hostname, $username, $password);
$rqt = "SELECT * FROM photo" ;
$r = mysql_db_query($database, $rqt);
 
$i = 0 ;
 
$arrayJs = "var slideimages = new Array(" ;
 
while($tab = mysql_fetch_array($r))
     {
      $photo = $tab['id'] ;
     if($i == 0)
          {
           $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
          }
     else
          {
          $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
          }
     $i++ ;
     }
$arrayJs .= ") ;" ;
 
echo $arrayJs ;
?>
Essaies une des deux ecritures sans rien changer, la première solution est la plus propre à mon avis car elle te permet de déclarer un seule fois en haut de page
Code :
1
2
3
 
mysql_connect($hostname, $username, $password);
mysql_select_db($database) ;
et après de faire de simple
Code :
1
2
 
mysql_query("maRequete") ;
.

Retourne moi le contenu du echo $arrayJs ou les erreurs si erreurs.
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 21h50   #9
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
super xess91, la requete est bien exécutée cette fois-ci avec le 1er code et ta boucle qui fonctionne à merveille (le 2ème code ne fontionne pas très bien avec le slider qui reste bloqué sur la 1ère image).
Je vais pouvoir le dupliquer avec d'autres sliders d'images qui tournent en js.
C'est un bon exemple pour tous ceux qui cherche un script de slider fonctionnant à partir de mysql.
Merci encore à toi
Bonne soirée.
budiartaaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h39.


 
 
 
 
Partenaires

Hébergement Web