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 :

Lister les éléments d'un tableau


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 40
    Points
    40
    Par défaut Lister les éléments d'un tableau
    Bonjour à tous,

    Je suis un habitué du PHP et je ne retrouve pas toutes ses fonctionnalités avec l'ASP.

    Afin de créer un petit quiz, je stocke dans un tableau les questions et les réponses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <%
    questions(1,0) = "Lequel de ces déchets peut-on déposer dans le contenant jaune ?"
    questions(1,1) = "Les magazines"
    questions(1,2) = "De l'essuie-tout usagé"
    questions(1,3) = "Le papier paraffiné du boucher ayant contenu mon rôti"
     
    questions(2,0) = "Parmi ces emballages, lesquels peut-on déposer dans le contenant jaune ?"
    questions(2,1) = "Des bouteilles, bidons et flacons en plaqtique"
    questions(2,2) = "Des boîtes à oeufs translucides"
     
    %>
    En fait, l'indice (x,0) est la question et les autres sont les réponses éventuelles. Cependant, je n'ai pas toujours le même nombre de réponses proposées.

    Est-il possible d'utiliser un foreach par exemple ?

    Parce qu'en faisant celà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%
    for i=1 to UBound(questions)
        Response.Write(questions(i,0) & "<br>")
    next
    %>
    Si un indice n'est pas renseigné (questions(1,0) = "toto" et questions(3,0) = "titi"), ici le (2,0), il y aura une erreur.

    Je sais que ça fait beaucoup de problèmes pour une seule et même personne ... J'espère que quelqu'un pourra me venir en aide.

    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    Quelque chose me turlupine : est-ce que tu indiques les dimensions de ton tableau avant de l'alimenter?
    Sinon si tu ne veux rien afficher quand il n'y a pas d'élément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <%
    for i=1 to UBound(questions)
        if questions(i,0)<>empty then
             Response.Write(questions(i,0) & "<br>")
        end if
    next
    %>

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Tu peux contourner le problème comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    question(1,0) = "question 1"
    question(1,1) = "Réponse 1"
    NbReponse = NbReponse + 1
    question(1,2) = "Réponse 2"
    NbReponse = NbReponse + 1
    question(1,3) = "Réponse 3"
    NbReponse = NbReponse + 1
     
    For i = 1 to NbReponse
    .......

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 40
    Points
    40
    Par défaut
    Oui, les dimensions de mon tableau sont prédéfinies.

    J'ai réussi à résoudre plus ou moins mon problème. Cependant, quelque chose m'échape en ASP.

    Je ne peux pas remplir "à la volée" mon tableau ? Je dois obligatoirement lui indiquer sa longueur ? Je ne peux pas dire :
    dim tablo() 'tu es un tableau d'une longueur indéfinie pour le moment

    ensuite, pour entrer des données :
    tablo() = "titi"
    ou éventuellement
    tablo(1) = "titi"

    Je ne trouve pas pratique du tout de devoir spécifier une longueur par avance, on ne sait pas toujours combien d'élément on va mettre dans un tableau :s

    En tout cas, merci de vos réponses.

  5. #5
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Regarde Redim preserve

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 40
    Points
    40
    Par défaut
    D'accord, merci, j'y vais de ce pas.

    Et tant que j'y suis, comment tester l'existence d'une variable ?
    En PHP, j'utilise exists(), mais en ASP, je ne trouve pas.

    J'en ai besoin car je génère das champs de formulaire à la volée et leur nom l'est aussi. D'un coup, j'ai un champ 1, un champ 7. L'autre coup, j'ai un champ 14 et un champ 3. Et ainsi de suite.

    Comment tester l'existance des variables passées en POST et afficher les valeurs ?

    Merci d'avance (désolé pour toutes ces questions, je découvre ...)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    pour récupérer l'ensemble des paramètres passé en méthode post
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for each param in Request.Form
         response.write "le paramètre " & param & " a pour valeur : "
         response.write Request.Form(Param) & "<br>"
    next

  8. #8
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Et pour l'existence d'une variable, peut être isnull(MaVariable) ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 42
    Points : 40
    Points
    40
    Par défaut
    Merci à vous tous, j'ai réussi avec une boucle ressemblant à celle de amar00.

    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/08/2006, 12h05
  2. Réponses: 3
    Dernier message: 24/05/2006, 23h23
  3. [Tableaux] Tester les éléments d'un tableau dans un if
    Par Leobaillard dans le forum Langage
    Réponses: 3
    Dernier message: 20/05/2006, 17h07
  4. Réponses: 10
    Dernier message: 27/03/2006, 19h38
  5. Réponses: 4
    Dernier message: 11/01/2006, 10h22

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