Listes et bases de données...

Résolu
Chris_LaFouine Messages postés 109 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 4 juin 2008 - 18 févr. 2005 à 09:37
Chris_LaFouine Messages postés 109 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 4 juin 2008 - 18 févr. 2005 à 11:48
Dans ma base de données, j'ai une table qui s'appelle Tarif voilà la structure :
QF : Clef Primaire
TarifNiort
TarifHorsNiort
Le QF va de 1 à 9, il représente un indice auquel est attribué des tarif... ce QF est calculé par l'utilisateur en fonction de son revenu...

Dans la page ASP que je dois faire, j'ai une SelectBox que j'ai nommé "cboQF" avec les différents QF (allant de 1 à 9), jusque là tout va bien. J'ai aussi une SelectBox que j'ai nommé "cboListeVilles" qui comprend une liste de villes.
Juste en dessous de "cboQF", j'ai une zone de texte que j'ai nommé "txtTarif" qui est destiné à recevoir le tarif correspondant au QF.
Si la ville choisie dans "cboListeVilles" est "NIORT", alors j'applique le TarifNiort, sinon, j'applique le Tarif HorsNiort.

Maintenant que vous avez bien compris, je vais vous exposer mon véritable probleme.
je voudrais que à chaque changement de QF dans la "cboQF", on mette à jour automatiquement le tarif sans avoir à recharger la page. sachant qu'on peut aussi changer entre temps la ville, dans ce cas, il faut aussi mettre à jour le tarif!

J'avais pensé à mettre un Javascript qui, en fonction du QF et de la ville, recherche la valeur dans la table Tarif et mette à jour mon "txtTarif". Mais cette recherche dans la base, je la fais en ASP et dès que je lance ma page, ça plante! Une autre solution est de faire la recherche dans la base directement en JavaScript, mais le problème c'est que c'est imprimé en dur dans le code source du client, ce qui est un gros problème de sécurité!

Si vous avez d'autres solutions... je suis preneur!
Merci d'avance

1 réponse

Chris_LaFouine Messages postés 109 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 4 juin 2008
18 févr. 2005 à 11:48
Ça y est, je me suis débloqué tout seul... j'ai trouvé une feinte de fouine pour remplir ce champ sans recharger la page... voilà le code... si ça peut donner des idées à des gens!

Dans le programme principal :
<select size="1" name="cboQF" onChange="calculQF()">
<%Dim i
For i=1 to 9
Response.write("<option value="&i&">"&i&"</option>&vbcrlf)
Next
%>
</select>

Le Code Javascript de la fonction calculQF()
window.open("recherche_QF.asp?qf="+document.personne_ajout_form.cboQF.value+"&ville="+document.personne_ajout_form.cboVille.value)

Et le contenu de la page rechercheQF.asp :
<% 'Récupération des valeurs
Dim fQF
Dim fTarif

fTarif=0
fQF=Request.QueryString("qf")

If fQF<>"0" then
If Request.QueryString("ville")="191" Then
Call recSelect(rsTarif,"select to_char(TAR_NIORT) from GIMS_TARIF where TAR_CODEORG='SC' and TAR_QF="&fQF)
Else
Call recSelect(rsTarif,"select to_char(TAR_HNIORT) from GIMS_TARIF where TAR_CODEORG='SC' and TAR_QF="&fQF)
End If
fTarif=rsTarif(0)

rsTarif.close
set rsTarif=Nothing
End If

%><% Dim fQF
Dim fTarif
fQF=Request.QueryString("qf")

IF Request.QueryString("Ville")="NIORT" THEN
'Requete de sélection du tarif de Niort dans la table Tarif
'...affecté dans la variable RecordSet "rsQuery"
ELSE
'Requete de sélection du tarif Hors Niort dans la table Tarif
'...affecté dans la variable RecordSet "rsQuery"
END IF
fTarif=rsQuery(0)
rsQuery.close
set rsQuery=Nothing
%>

<html>
onLoad="window.opener.document.forms['personne_ajout_form'].elements['txtMontant'].value='<%=fTarif%> €';self.close()">

</html>

Voila, j'espere que ça va servir!!!
3
Rejoignez-nous