Solved

How do you use multiple variables in loops?

Posted on 2008-10-22
3
168 Views
Last Modified: 2012-05-05
I have a quiz with the information (ID [the auto-incremented primary], question, a [answer a], b [answer b], c [answer c], d [answer d], and correct [the correct answer; a, b, c, or d]) in a database. To output the quiz I used a simple loop over a query that gets all the questions:

<cfset i=1>
<table>
      <cfloop query="qGetQuestions">
            <tr>
                  <td>#i#.</td>
                  <td>#question#<br />
                        <table>
                              <tr>
                                    <td><input name="#ID#" type="radio" value="a"></td>
                                    <td>#a# </td>
                              </tr>
                              <tr>
                                    <td><input name="#ID#" type="radio" value="b"></td>
                                    <td>#b# </td>
                              </tr>
                              <tr>
                                    <td><input name="#ID#" type="radio" value="c"></td>
                                    <td>#c#</td>
                              </tr>
                              <tr>
                                    <td><input name="#ID#" type="radio" value="d"></td>
                                    <td>#d#</td>
                              </tr>
                        </table></td>
                  </tr>
            <cfset i = i + 1>
                  </cfloop>
                  <tr>
                        <td></td>
                        <td><input type="submit" name="Submit" value="Submit" /></td>
                  </tr>
</table>

Not a problem. The problem comes when trying to score. If I loop through the query again, I need to check and see if #qGetQuestions.correct# is equal to #FORM.#ID##, which is obviously not a valid variable. How do I go about this, or have I been going about the test setup incorrectly from the start?

Thanks!
0
Comment
Question by:SiobhanElara
  • 2
3 Comments
 
LVL 63

Accepted Solution

by:
Zvonko earned 500 total points
ID: 22777786
Check this:
<cfset i=1>

<cfset Correct=0>

<cfset subValue="" >

<table>

 <cfloop query="qGetQuestions">

  <tr>

   <td>#i#.</td>

   <td>#question#<br />

   <cfif IsDefined("FORM.FieldNames") >

     <cfset subValue=FORM[ID] >

   </cfif>

   <table>

   <tr>

    <td><input name="#ID#" type="radio" value="a" <cfif subValue EQ "a">CHECKED</cfif> ></td>

    <td>#a# </td>

   </tr>

   <tr>

    <td><input name="#ID#" type="radio" value="b" <cfif subValue EQ "b">CHECKED</cfif> ></td>

    <td>#b# </td>

   </tr>

   <tr>

    <td><input name="#ID#" type="radio" value="c" <cfif subValue EQ "c">CHECKED</cfif> ></td>

    <td>#c#</td>

   </tr>

   <tr>

    <td><input name="#ID#" type="radio" value="d" <cfif subValue EQ "d">CHECKED</cfif> ></td>

    <td>#d#</td>

   </tr>

   </table></td>

  </tr>

  <cfset i = i + 1>

  <cfif IsDefined("FORM.FieldNames") >

    <cfif FORM[ID] EQ answer >

      <cfset Correct=Correct+1>

    </cfif>

  </cfif>

 </cfloop>

 <cfif IsDefined("FORM.FieldNames") >

   <tr><td colspan="2">Correct answers: #Correct#</td</tr>

 </cfif>

 <tr>

 <td></td>

 <td><input type="submit" name="Submit" value="Submit" /></td>

 </tr>

</table>

Open in new window

0
 

Author Comment

by:SiobhanElara
ID: 22778287
Thanks for your response! While it does appear that the above code would tell you how many questions were correct, it doesn't seem to tell them *which* ones they got right and what the correct answer would be. (I should have specified that was what I was going for but was hoping to be able to figure that part out if the double variable thing got explained.) What I would like it to do, in the end, is to say (using explanatory variable names for clarity):

You got #numberCorrect# of #totalQuestions# questions correct!

1. #question#
    The correct answer is #textOfCorrectAnswer#. You answered #textOfExamAnswer#.

Etc.
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 22779082
Open a new question please for that formating.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

The technique is by far very Simple! How we can export the ColdFusion query results to DOC file?  Well before writing this I researched a lot in Internet but did not found a good Answer anyways!  So i thought now i should share my small snippet w…
Recently while working on a project I got a very annoying cfdocument has no body error message. I had never seen this error before. So I checked the code. The code was pretty simple; it was Just showing me the cfdocumnt tag and inside that tag a …
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now