Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
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 21/11/2006, 10h56   #1
Membre habitué
 
Inscription : octobre 2005
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 745
Points : 127
Points : 127
Par défaut [asp] sql server probleme de logique..

Bonjour,
voila j'ai un petit probleme de logique, je m'explique:
j'ai un site web avec pour une partie du site une traduction en 3 langues et pour une autre, une traduction en juste deux langues.
Pour cela j'initialise ma Session("langue") en fonction du navigateur et il va me chercher dans la base les données a afficher en fonction de cette session("langue").
ensuite pour changer de langue j'ai un fichier include :


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
<script langage="JavaScript">
function affImages(){
   if(document.getElementById('fr').style.display == "none"){
      document.getElementById('fr').style.display = "block";
      document.getElementById('en').style.display = "block";
      document.getElementById('es').style.display = "block";
   }
   else{
      document.getElementById('fr').style.display = "none";
      document.getElementById('en').style.display = "none";
      document.getElementById('es').style.display = "none";
   }
}
 
 
</script>
	<table border=0 summary="">
	<tr>
		<td>&nbsp;</td>
		<td onclick="affImages()" ><img src="../images/drapeaux/language.gif" width="73" height="16" border="0"></td>
		<td id="fr" style="display:none" width="23" height="14"><a href="<%=request.ServerVariables("PATH_INFO")+"?langue="+"fr"%>"><img src="../images/drapeaux/francais.gif" width="22" height="14" border="0"></a></td>
		<td id="en" style="display:none" width="23" height="14"><a href="<%=request.ServerVariables("PATH_INFO")+"?langue="+"en"%>"><img src="../images/drapeaux/anglais.gif"  width="22" height="14" border="0"></a></td>
		<td id="es" style="display:none" width="23" height="14"><a href="<%=request.ServerVariables("PATH_INFO")+"?langue="+"es"%>"><img src="../images/drapeaux/espagnol.gif" width="22" height="14" border="0"></a></td>
	</tr>
</table>
jusque la pas de probleme tout marche mais je n'arrive pas a mettre en place un systeme qui ne m'afficherait que les drapeaux anglais et francais si dans ma base je n'ai par exemple pour la page home.asp juste fr et en, a savoir si je fais une requete du style :
Code :
select langue_id from  page where  page_nom='home.asp'
qui ne me renvoit que en et fr alors il faudrait juste afficher les drapeaux correspondant, mais la je seche completement niveau logique...


J'ai bien essayé de recuperer mes langue_id ds un tableau mais apres toujours cette fichue logique qui me manque de si bon matin...

Voila en esperant avoir ete clair
et en attendant une reponse eventuelle de votre part!
D'avance merci!
Alex35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2006, 22h28   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Salut,

Soit il est tard et je ferai mieux de me coucher soit tu n'es pas clair.

Peux-tu approfondir?

Merci

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 08h59   #3
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Bonjour,

Je suppose que le résultat de ta requête est stocké dans un recordset ?

Alors, tu parcours ton recordset et en fonction des valeurs que tu lis, tu affiche les images correspondantes :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<%
do while not rst.eof
   if rst("langue_id") = "en" then
      %>
      <img src="en.gif">
      <%
   else if rst("langue_id") = "fr" then
      %>
      <img src="fr.gif">
      <%
   else if rst("langue_id") = "it" then
      %>
      <img src="it.gif">
      <%
   end if
   rst.movenext
loop
%>
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 10h07   #4
Membre habitué
 
Inscription : octobre 2005
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 745
Points : 127
Points : 127
merci je vais essayer ca je vous tiens au courant!
Ps: je savais bien que je n'etais pas tres clair...
Alex35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 12h22   #5
Membre habitué
 
Inscription : octobre 2005
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 745
Points : 127
Points : 127
bon je me réeplique:
j'ai une page home.asp qui en base a trois traductions, et une autre page qui elle n'en a que deux.
Je voudrais avoir le meme fichier menuLangue en include qui m'affiche soit trois drapeaux pour trois traductions soit deux drapeaux pour deux traductions.
sur ma page home j'ai :

Code :
1
2
<!-- #include File="../Includes/DS_FONCTIONS.asp"-->
nbDrapeaux("home.asp")
avec ds mon fichier DS_FONCTIONS:

Code :
1
2
3
4
5
6
function nbDrapeaux(NomPage)
	strQuery="select langue_id from  page where  page_nom='"&NomPage&"'	"
	set objRS3 = Server.CreateObject("ADODB.Recordset")
	set objRS3.ActiveConnection = objConn
 	objRS3.Open strQuery
	end function

ensuite plus loin dans mon fichier home toujours, j'ai:


Code :
<!-- #include File="../Includes/MenuLangue.asp"--></td>

et mon fichier MenuLangue.asp c'est :


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
function affImages(){
   if(document.getElementById('fr').style.display == "none"){
      document.getElementById('fr').style.display = "block";
      document.getElementById('en').style.display = "block";
      document.getElementById('es').style.display = "block";
   }
   else{
      document.getElementById('fr').style.display = "none";
      document.getElementById('en').style.display = "none";
      document.getElementById('es').style.display = "none";
   }
}
 
 
</script>
	<table border=0 summary="">
	<tr>
		<td>&nbsp;</td>
		<td onclick="affImages()" ><img src="../images/drapeaux/language.gif" width="73" height="16" border="0"></td>
<%	
while not objRS3.eof
   if objRS3("langue_id") = "fr" then
      %>
		<td id="fr" style="display:none" width="23" height="14"><a href="<%=request.ServerVariables("PATH_INFO")+"?langue="+"fr"%>"><img src="../images/drapeaux/francais.gif" width="22" height="14" border="0"></a></td>
 <%
   end if
   if objRS3("langue_id") = "en" then
      %>		
		<td id="en" style="display:none" width="23" height="14"><a href="<%=request.ServerVariables("PATH_INFO")+"?langue="+"en"%>"><img src="../images/drapeaux/anglais.gif"  width="22" height="14" border="0"></a></td>
 <%
   end if 
    if objRS3("langue_id") = "es" then
      %>		
		<td id="es" style="display:none" width="23" height="14"><a href="<%=request.ServerVariables("PATH_INFO")+"?langue="+"es"%>"><img src="../images/drapeaux/espagnol.gif" width="22" height="14" border="0"></a></td>
<%  
end if
objRS3.movenext
wend
objRS3.close
%>
	</tr>
</table>
Mais quand je lance ma page il me dit une erreur au niveau de mon incllude puisque lorsque j'affiche la source de ma page home.asp au niveau de mon include il me ressort:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function affImages(){
   if(document.getElementById('fr').style.display == "none"){
      document.getElementById('fr').style.display = "block";
      document.getElementById('en').style.display = "block";
      document.getElementById('es').style.display = "block";
   }
   else{
      document.getElementById('fr').style.display = "none";
      document.getElementById('en').style.display = "none";
      document.getElementById('es').style.display = "none";
   }
}
 
 
</script>
	<table border=0 summary="">
	<tr>
		<td>&nbsp;</td>
		<td onclick="affImages()" ><img src="../images/drapeaux/language.gif" width="73" height="16" border="0"></td>
 
	</tr>
</table>
Donc ca se passe mal puisque je devrais pour cette page avoir le francais et l'anglais, c'est tout, pas l'espagnol, or il ne m'affiche rien.
De plus je vais surement devoir faire le test auniveau de ma fonction javascript affImages() sinon si je n'ai pas l'id="es" alors pour la ligne

Code :
 document.getElementById('es').style.display = "block";
entre autre il va me dire :"Un objet est requis" ce qui est normal!

Bref en esperant avoir ete un petit peu plus clair...(j'en doute mais on ne sait jamais )
D'avance merci!!
Alex35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 12h56   #6
Membre habitué
 
Inscription : octobre 2005
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 745
Points : 127
Points : 127

un debut de reponse avec
Code :
 if rtrim(objRS3("langue_id")) = "fr" then
qui me supprime les espaces et donc me renvoie bien la bonne valeur maintenant je dois faire le test aussi de la fonction AffImage() pour eviter l'erreur "Un objet est recquis pour :

Code :
document.getElementById('es').style.display = "block";
car en l'occurrence pas de traduction espagnole, donc pas drapeaux espagnol donc pas d'ID="es", bref je m'y remets mais si quelqu'un a une solution a m'apporter je suis preneur!
Merci
Alex35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 13h14   #7
Membre habitué
 
Inscription : octobre 2005
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 745
Points : 127
Points : 127
le truc est de refaire le test 3 fois!
Alex35 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 23h19.


 
 
 
 
Partenaires

Hébergement Web