Bonjour à tous !
J'ai récemment créé mon site internet et je développe une galerie de photos.
Pour cela j'utilise prototype, dernière version, téléchargé sur le site officiel. Lorsque je consulte la galerie avec "http://www" en début d'adresse, cela ne marche pas : le onException est systématiquement lancé. Par contre, avec seulement "http://" cela fonctionne. Voilà le site en question : http://quentin-caron.com/galeries.php.
Code pour une photo :
Code de la fonction js appelée sur click de la photo :Code:"<img src='"+tblURL[tblURL.length-1]+"' alt='photo 1' class='miniature' id='miniature_gauche' onClick=\"lancerRequete(document.getElementById('miniature_gauche').src, '"+nomGalerie+"', 'gauche')\"/>"+
Fonction qui va chercher l'URL dans la réponse du serveur :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 function lancerRequete(url, ng, click) { // on cherche la galerie en question... var urlPage = window.location.toString(); var isWWW = "www"; if(urlPage.substring(7,3) != "www") isWWW = "http"; var req = new Ajax.Request( "http://quentin-caron.com/envoieURL.php", { method: "get", parameters: {urlPh: url, ng: ng, click: click, isWWW: isWWW}, onSuccess: function(transport) { chercherURL(transport.responseXML, click);}, onFailure: function() { alert("Requête échouée"); }, onCreate: function() { document.getElementById("info_chargement").className="info_chargement_visible";}, onComplete: function() { document.getElementById("info_chargement").className="info_chargement_hidden"; }, onException: function() {alert('Un problème est survenu...');} } ); }
Fonction pour le décalage :Code:
1
2
3
4
5
6
7
8 function chercherURL(doc, click) { var tagurl = doc.getElementsByTagName('url'); if (click == "gauche") decalageVersDroite(tagurl[0].firstChild.nodeValue); else decalageVersGauche(tagurl[0].firstChild.nodeValue); }
Fichier php qui donne l'adresse de la prochaine photo à afficher :Code:
1
2
3
4
5
6
7 function decalageVersGauche(urlPhoto) { document.getElementById('miniature_gauche').src = document.getElementById('miniature_actuelle').src; document.getElementById('miniature_actuelle').src = document.getElementById('miniature_droite').src; document.getElementById('miniature_droite').src = urlPhoto; document.getElementById("photo_actuelle").src = document.getElementById('miniature_actuelle').src; }
Vous pouvez tester ce que donne le xml avec ici : http://quentin-caron.com/envoieURL.p...oite&isWWW=wwwCode:
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
48
49
50
51
52
53
54
55
56
57 <?php require_once('cnx.php'); require_once('Photo.php'); header('Content-Type: text/xml;charset=utf-8'); echo(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><photo>")); if ( isset($_GET['urlPh']) && isset($_GET['ng']) && isset($_GET['click']) && isset($_GET['isWWW'])) // on récupère l'url de la photo suivante ou précédente { $tblURL = array(); $req = Connexion::requete("SELECT * FROM `Photo` WHERE `galeriePhoto` = '".$_GET['ng']."'"); //echo "<test>".$_GET['urlPh']."</test>"; if ($req !== false && mysql_num_rows($req) !== 0) { while($photos = mysql_fetch_assoc($req)) { if ($_GET['isWWW'] == "www") $tblURL[] = "http://www.quentin-caron.com/".$photos["urlPhoto"]; else $tblURL[] = "http://quentin-caron.com/".$photos["urlPhoto"]; //echo "<test>".$tblURL[count($tblURL)-1]."</test>"; } } $url = utf8_decode($_GET['urlPh']); $i; for($i = 0; $i < count($tblURL)-1; $i++) { if ($tblURL[$i] == $url) { break; } } if ($_GET['click'] == "droite") { if ($i != count($tblURL)-1) //i ne vaut pas le dernier index du tableau $urlPh = $tblURL[$i+1]; else $urlPh = $tblURL[0]; } else { if ($i > 0) // si on peut reculer dans le tableau sans avoir d'index negatif $urlPh = $tblURL[$i-1]; else // sinon on prend le dernier element du tableau $urlPh = $tblURL[count($tblURL)-1]; } } else $urlPh = ""; function generateOptions($url) { echo(utf8_encode("<url>".$url."</url>")); } generateOptions($urlPh); echo("</photo>"); ?>
Comme vous pouvez le voir, j'essaye de faire quelque chose pour régler le problème du "www" dans l'adresse mais en vain. Je fais ça car même avec un chemin relatif ça ne marche pas. Est-ce qu'il ne s'agirait d'un problème de passage de paramètre ?