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

VBScript Discussion :

Alimenter une liste déroulante a partir d'un fichier TXT.


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut Alimenter une liste déroulante a partir d'un fichier TXT.
    Bonjour a tous et a toutes, Je débute en programmation je suis actuellement en 1ere année de BTS Informatique de gestion... Bref.
    J'ai besoin, dans le cadre de mon stage, d'alimenter une liste déroulante crée en html a partir d'un fichier texte.
    c'est a dire que dans mon fichier texte j'ai le nom d'un fournisseur,le prix:
    Ex: ASVO,6.55
    bien sur j'en aurait plusieurs...
    Je pensais metre dans un tableau mes donné puis ensuite les afficher dans ma liste mais la probleme, cela ne fonctionne pas.
    regarder ce que j'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <SCRIPT language="VBscript">
    <----! Declaration du tableau des fournisseurs ---->
    Dim TabF(50)
    i=1
    Dim FSO
    Set FSO=CreateObject("Scripting.FileSystemObject")
    Set Ftxt=FSO.OpenTextFile("C:\Prix de vente 05\listefournisseur.txt")
    Do While Not Ftxt.AtEndOfStream
    	TabF(i)=Ftxt.Readline
    	i=i+1
    loop 
    Ftxt.close
    ensuite pour l'afficher dans mon code html dans ma liste déroulante j'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td align="center"><b>Fournisseurs ?</b><SELECT NAME="type_four">
      <OPTION SELECTED VALUE="Fournisseurs"><SCRIPT language="VBscript">Response.Write(i & " : " & tableau(i))</script></td>
    pouvez-vous m'aidez?
    Merci d'avance

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Je connais pas l'ASP... mais pour créer ta liste de choix je pense qu'il te faut faire une boucle pour parcourir les éléments de ton tableau...

    tiens un exemple, à mettre dans un .html (j'ai pas utilisé de tableau intermédiaire) ..


    Code html : 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
     
    <HTML>
    <HEAD>
    <TITLE>Passez votre commande</TITLE>
    </HEAD>
     
    <td align="center"><b>Fournisseurs ?</b><SELECT NAME="type_four">
     
      <SCRIPT language="VBscript">
      <!--
            Dim FSO
            Set FSO=CreateObject("Scripting.FileSystemObject")
            Set Ftxt=FSO.OpenTextFile("d:\tmp\scores.txt")
            i=0
            Do While Not Ftxt.AtEndOfStream
                    Document.Write("<Option Value=" & i & ">" & Ftxt.Readline & "</OPTION>")
                    i=i+1
            loop 
            Ftxt.close
            --></script></td>
     
      </BODY>
     
    </HTML>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    La zone de liste apparait bien mais reste vide, mon fichier texte comporte pourtant 4 entrées :s.
    La boucle que tu ma donné en faite, sa fonction est juste de parcourir mon fichier ? et sinon es ce que tu sais comment faire pour justement remplir ma zone de liste. je connais les differents <option>value=...</option>
    mais ce que je veut justement c'est l'alimenter grace a mon fichier texte. Pour enfaite avoir qu'a modifier le .txt si jammais les fournisseurs change leur prix...
    Merçi.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben as-tu essayé mon code ... ( en le plaçant dans un .html..) ?

    tu dois effectuer une boucle qui "génère" une ligne option .. par ligne de ton fichier ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    Voila ce que j'ai fais : ceci est dans mon .html.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <td align="center"><b>Fournisseurs ?</b><SELECT NAME="type_four">
       <SCRIPT language="VBscript"> 
    	Dim FSO
    	Dim
    	Set FSO=CreateObject("Scripting.FileSystemObject")
    	Set Ftxt=FSO.OpenTextFile("C:\Prix de vente 05\listefournisseur.txt")
    	i=0
    	Do While Not Ftxt.AtEndOfStream
    		Document.Write("<Option Value=" & i & ">" & Ftxt.Readline & "</OPTION>")
    		i=i+1
    	loop 
    	Ftxt.close
    	</script></td>
    Mais toujours rien dans ma liste déroulante :s.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu le met ou ton script ? quel type de fichier ? tu le "lance comment"?

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par bbil Voir le message
    ben as-tu essayé mon code ... ( en le plaçant dans un .html..) ?
    change juste le nom du fichier texte à lire déjà ...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    listefournisseur.txt il va pas aimer ? j'ai pas trop compris ce que tu voulais me dire.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Par défaut Si cela peut aider...
    Bonjour,

    Débutant en VBS et ASP, j'ai récemment fait quelque chose dans le même genre, excepté que ma liste de choix est alimentée par des noms de fichiers, à adapter à ton besoin...

    En gros, les déclarations et affectations sont faites en haut de page (ainsi elles sont accessibles dans toute la page) et la boucle qui alimente la liste est dans la balise <select>.

    Note : dans l'évènement "onchange", la fonction Javascript "open_awstats(this.value)" récupère la valeur sélectionnée et ouvre une autre page...

    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
    <%@ Language = "VBScript" %>
    <% Response.Buffer = True %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html> 
     
    <%
    ' Prepare variables.
    dim fs,fo,x,sep1,sep2,wordarray,mystring,choicearray()
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set fo=fs.GetFolder("c:/temp/")
    sep="."
    %>    
      <head>
    ....
      </head>
        <body>

    La liste de choix (SELECT) :

    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
    <asp:compute-select-field>
                  <select name="site_name" onchange="open_awstats(this.value)">
                  <option value=""></options> <!-- Première option = vide-->
                    <%
                    for each x in fo.files
                      ' Fill options to select field
                      ' Return and split (at each ".") the config files name (create a words array)
                      ' File name as "awstats.site-name.conf"  
                      wordarray = Split(x.Name,sep)
                      ' Get the second value of array = the site name
                      sitename = wordarray(1)
                      ' Fill options
                        Response.write("<option value='" & sitename & "'>" & sitename & "</option>")
                    next           
                    set fo=nothing
                    set fs=nothing
                    %>
                </asp:compute-select-field>
    Voili, voilo,

    Thierry

  10. #10
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    Salut,

    voici un extrait d'une appli qui va lire les config des routeurs Cisco.
    J'ai un fichier texte CiscoLst.Txt qui contient toutes les adresses IP des routeurs avec une adresse par ligne. Pour afficher les adresses dans une liste déroulante, j'ai fait comme ca :

    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
     
    Sub DDList
     
       Set objFile = objFSO.OpenTextFile("CiscoLst.Txt", ForReading)
       Cisco_classes.InnerHTML = ""
       strHTML = "<select style=""width:270px;"" onChange=""ChgIP()"" name=IPPulldown>" & _
                    "<option value=""PulldownMessage"">Choose a switch... "
       Do Until objFile.AtEndOfStream
          strLine = objFile.ReadLine
          strHTML = strHTML & "<option value= " & Chr(34) & strLine & Chr(34) & ">" & strLine
       Loop
     
       strHTML = strHTML & "</select>"
       Cisco_classes.InnerHTML = strHTML
     
       objFile.Close
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span id="Cisco_classes"></span></td>
    A++

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    Merci a tous de votre aide, cela ma apporté pas mal de renseignements.
    Cependant j'aurais une 2nd question... Comment faire pour que lorsque je sélectionne une "option" dans ma liste déroulante cela m'affiche la valeur (de cette "option") dans une zone de texte?
    J'espere que je me suis pas trop mal exprimé.
    Merci

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Par défaut
    Bonjour,

    Citation Envoyé par ToNy.T Voir le message
    Comment faire pour que lorsque je sélectionne une "option" dans ma liste déroulante cela m'affiche la valeur (de cette "option") dans une zone de texte?
    J'espere que je me suis pas trop mal exprimé.
    Merci
    Dans l'événement "onchange" de la balise "<SELECT....>" tu peux utiliser un p'tit code JavaScript comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Affecte la valeur sélectionnée à un champ de type texte
    document.forms['nom du Form'].nom_du_champ_texte.value = this.value
    Si ta liste de choix à une valeur (value) affecté aux options c'est cette valeur qui sera retournée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="valeur">texte affiché</option>
    Si le texte affiché est différent de la valeur, il te faudra utiliser ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Affecte la valeur affichée sélectionnée à un champ de type texte
    document.forms['nom du Form'].nom_du_champ_texte.value = this.options[this.selectedIndex].text
    this.selectedIndex = retourne l'index sélectionné (selectedIndex est uniquement valable si la liste est à choix unique)
    this.options[this.selectedIndex].text = retourne la valeur texte affiché correspondant à l'option sélectionné...

    Suis-je clair ?

    Thierry

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    Bonjour thierry, j'ai un peu de mal a comprendre alors peut tu me dire si ce que je fais est correct. J'ai donc une liste déroulante alimenté a partir un fichier texte.
    le fichier texte ressemble a ceci:
    NOM (séparation par 2tabulation) Valeurs
    la liste déroulante est alimenté comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    </b><SELECT NAME="type_four">
    <SCRIPT language="VBscript">
    	Dim FSO
    	Set FSO=CreateObject("Scripting.FileSystemObject")
    	Set Ftxt=FSO.OpenTextFile("C:\Prix de vente 05\fournisseurs.txt")
    	i=0
    	Do While Not Ftxt.AtEndOfStream
    		Document.Write("<Option Value=" & i & ">" & Ftxt.Readline & "</OPTION>")
    		i=i+1
    	loop 
    	Ftxt.close
    	</script></td>
    donc tu me conseil de crée l'evenement "Onchange"
    je fais donc comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    </b><SELECT NAME="type_four" Onchange=document.forms['nom du Form'].type_four.value = this.options[this.selectedIndex].text>
    <SCRIPT language="VBscript">
    	Dim FSO
    	Set FSO=CreateObject("Scripting.FileSystemObject")
    	Set Ftxt=FSO.OpenTextFile("C:\Prix de vente 05\fournisseurs.txt")
    	i=0
    	Do While Not Ftxt.AtEndOfStream
    		Document.Write("<Option Value=" & i & ">" & Ftxt.Readline & "</OPTION>")
    		i=i+1
    	loop 
    	Ftxt.close
    document.forms['nom du Form'].type_four.value = this.options[this.selectedIndex].text
    	</script></td>
    "nom du Form" je ne sait pas a quoi sa correspond chez moi...C:\Prix de vente 05\fournisseurs.txt ?
    sinon es ce que ma syntaxe est correct pour ce que tu me dis ?
    Merci

Discussions similaires

  1. [AC-2010] Alimenter une liste déroulante de formulaire à partir d'une 2ème base
    Par metalleuse dans le forum VBA Access
    Réponses: 6
    Dernier message: 08/06/2015, 10h10
  2. Réponses: 17
    Dernier message: 09/06/2011, 00h50
  3. Réponses: 6
    Dernier message: 11/02/2009, 17h17
  4. Réponses: 15
    Dernier message: 21/11/2006, 10h13
  5. alimenter une liste déroulante
    Par wided_instm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/09/2006, 19h29

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