IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Requête paramétrable en fonction d'une sélection utilisateur


Sujet :

ASP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Requête paramétrable en fonction d'une sélection utilisateur
    Bonjour,

    C'est la première fois que je me lance sur un forum, alors ce serait une super expérience si j'en sortais vainqueur

    Voici mon problème :
    J'édite une page .asp qui se trouve être une des pages intranet de mon entreprise, car j'ai en amont ajouté de nouveaux champs dans nos BDD, qui nécessitent ici d'être renseignés : afin d'intégrer un nouveau contact, nous devrons maintenant saisir son département, son service, puis son poste.

    Sachant qu'un département comporte N services, et un service N postes..
    Les schémas de mes tables sont les suivantes :
    Départements : Code_D - Label
    Services : Code_D - Code_S - Label (donc jointure implicite du dép.)
    Postes : Code_D - Code_S - Code_P - Label ("" dép. et serv.)

    Voici aujourd'hui l'architecture de ma page .asp (sachant que j'aimerais si possible y porter le minimum de modifications possible..) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    // Création des futures requêtes
    set Cbofonction2 = server.CreateObject("ADODB.Recordset")
    set Cbofonction3 = server.CreateObject("ADODB.Recordset")
    set Cbofonction4 = server.CreateObject("ADODB.Recordset")
     
    // Ouverture base en lecture
    objconnection2.Open "[Base]","[login]","[pass]"
     
    // Instanciation des chaînes-requêtes
    req2 = "SELECT CODE_D, LABEL FROM departements order by LABEL"
    req3 = "SELECT CODE_S, CODE_D, LABEL FROM services order by LABEL"
    req4 = "SELECT DISTINCT CODE_P, CODE_S, CODE_D, LABEL FROM postes order by LABEL"
     
    // Lancement des requêtes
    cbofonction2.Open req2,Objconnection2
    cbofonction3.Open req3,Objconnection2
    cbofonction4.Open req4,Objconnection2
     
    // Affectation des codes du contact s'ils existent
    code_d = ObjRecordset("Code_D")
    code_s = ObjRecordset("Code_S")
    code_p = ObjRecordset("Code_P")
     
    // Création de l'objet graphique : liste départements
    <td><i>Département : </i></td>
    <td>
    <select name="code_departement" onchange="javascript:change_service(this.value);">
    <%do while not Cbofonction2.EOF%>
    <option value="<%=Cbofonction2("CODE_D")%>"
    <% if code_d=Cbofonction2("CODE_D") then%> selected <%end if%>>
    <%=Cbofonction2("LABEL")%></option>
    <%Cbofonction2.MoveNext loop%>
    </select>
    </td>


    Et après des heures de compréhension de code (en voici une toute petite partie ^^) et de modifs, je n'arrive toujours pas à proposer la bonne liste de services en fonction de son choix de département.. (elle reste la même : tous les services); il en va de même pour les postes..

    Il me faudrait une sorte de reload de la page afin d'affecter les nouvelles valeurs ? Appels serveur ou autre ? Je suis perdu..

    Je suis parti sur l'idée de l'évènement JS OnChange (en vert), j'espère que c'est la bonne piste..

    Merci d'avance

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Petit up : J'aimerais simplement pouvoir adapter ma requête en fonction du choix de l'utilisateur dans cette même page.
    La demande commence à devenir urgente..

    Merci d'avance.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    À mon avis, il faut que tu postes ton formulaire , sur le onchange, tu mets quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Onchange="javascript:document.monformulaire.submit();

    Sur ton post tu récupèreras la valeur de ton select.

    Des que tu as cette valeur tu reconstruis ta requête 3, je vois bien quelque chose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Req3 =" Select code_s,code_d, label from services "
     
               If request.form("code_departement") <> "" Then
                   Req3 = Req3 & " where code_d = '" &request.form("code_departement") & "'"
              End If 
              Req3 = Req3 & " order by label "

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/11/2008, 13h31
  2. Changer un paramètre de fonction dans une boucle
    Par DeezerD dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 24/01/2008, 14h23
  3. Macro en fonction d'une sélection de plage de cellules.
    Par Labiche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/08/2006, 10h23
  4. Retrouver les valeurs des paramètres des fonctions d'une DLL
    Par Bernard Martineau dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 10h42
  5. [c#] Vérifier une sélection utilisateur
    Par elendila dans le forum ASP.NET
    Réponses: 2
    Dernier message: 28/09/2005, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo