---
title: "Dynamiska frågeformulär"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/180694-dynamiska-frågeformulär"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Peeer"
published: "2009-10-13T14:16:20.000Z"
updated: "2009-10-13T17:31:31.000Z"
replies: 2
views: 574
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/180694-dynamiska-frågeformulär"
---

# Dynamiska frågeformulär

## #1 — Peeer, 2009-10-13T14:16Z

Hej!
Håller på att bygga upp ett dynamiskt frågeformulär. Beroende på vad användaren svarar på en fråga så ska hon komma till olika följdfrågor. Ex

```

Har du husdjur?
  * Ja - Gå till "har du katt"
  * nej - Gå till "är du gift"

Har du katt?
  * Ja - Gå till "Fäller den mycket hår"
  * Nej - Gå till "har du hund"

Fäller den mycket hår
  * Ja - Gå till "är du gift"
  * Nej - Gå till "är du gift"
 
Har du hund?
  * Ja - Gå till "har du barn"
  * Nej - Gå till "är du gift"

Är du gift?
  * Ja - Gå till "har du barn"
  * Nej - Gå till "har du barn"

Har du barn?
  * Ja
  * Nej
```

Lite otydligt, men ni förstår säkert hur jag menar. Frågan är hur man gör det här bäst/mest logiskt? För tillfället så skickar jag in följdfrågorna i varje fråga och när man svarar på en fråga så skickar den vidare användaren till nästa fråga.

```
Question haveChildren = new Question(null, null);
Question married = new Question(haveChildren, haveChildren);
Question haveDog = new Question(haveChildren, married);
Question dropsHairEverywhere = new Question(married, married);
Question haveCat = new Question(dropsHairEverywhere, haveDog);
Question havePet = new Question(haveCat, married);

havePet.ask();
```

Men det känns inte helt logiskt. Finns det något snyggare sätt att lösa det på?

Mvh Per

Permalänk: https://www.webforum.nu/p/180694

## #2 — nitro2k01, 2009-10-13T15:24Z

Vilket språk/miljö? Jag skulle nog ha lagrat frågorna i en databas (eller liknande) och lagrat ett attribut som talar om vilken nästa fråga ska vara för varje svar. Typ:

```
[b]questions[/b]
questionId     (id)
questionString (Frågan)

[b]answers[/b]
answerId       (id)
questionId     (Vilken fråga svaret tillhör)
answerString   (Ett svar)
nextQuestionId (Nästa fråga)
```

Sedan gör du något i stil med:

```
SELECT q.questionString, a.* FROM questions q
JOIN answers a ON a.questionId = q.questionId
```

Sedan följer du nextQuestionId för varje svar.
(Sensmoralen är att skilja på kod och data)

Permalänk: https://www.webforum.nu/p/2207824

## #3 — Peeer, 2009-10-13T17:31Z

C# är det som används. Har dessvärre ingen möjlighet att lägga till tabeller i databasen, utan det får väl bli xml-filer. Tack för inputen!

/r Det blev faktiskt riktigt bra med xml-filer. :)

Permalänk: https://www.webforum.nu/p/2207838

---

Tråden på webben: https://www.webforum.nu/amne/programmering/180694-dynamiska-frågeformulär
