Multipage form summing and assign to group - proficiency test

sylwekb 30 Aug, 2016
Hello Bob. I made a multipage form, consisting of 19 pages:
1. - Page with personal data
2-19 - page proficiency polish language test 180 questions, each 4 Responses to choose a, b, c, d (one correct, three abnormal) Correct answer 1 point, incorrect 0 points.

With your help wrote out the number of points for each group of proficiency test

CHECKING THE TEST

At each trimester falls 10 questions. The student must have 6 correct answers to be considered as credited trimester.

Is this code for all multi-page forms is correct?

Bob, please write me step by step exactly where this code put it. Is there any help or tutorial on how to put it summing and group? Are there any print screenshots? Greatly facilitated and accelerated the work of ChronoForms especially for beginners like me.


    $form->data['radio1'] = 3
    $form->data['radio2'] = 2
    $form->data['radio3'] = 1
    . . .



    <?php
    $score = 0;
    if ( $form->data['radio1'] == 3 ) [
      $score++;
    }
    if ( $form->data['radio2'] == 1 ) [
      $score++;
    }
    if ( $form->data['radio3'] == 4 ) [
      $score++;
    }
    $form->data['score'] += $score;
    ?>


Page 2 of 19 - level A0 questions 1-10

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 6 ) {
      $form->data['group'] = 'A.0';
    } else if ( $form->data['points'] > 5 && $form->data['points'] < 10 )
      $form->data['group'] = 'A.1.1';
    }
    ?>


Next page

Page 3 of 19 - level A1.1 questions 11-20

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 12 ) {
      $form->data['group'] = 'A.1.1';
    } else if ( $form->data['points'] > 11 && $form->data['points'] < 20 )
      $form->data['group'] = 'A.1.2';
    }
    ?>


Next page

Page 4 of 19 - level A1.2 questions 21-30

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 18 ) {
      $form->data['group'] = 'A.1.2';
    } else if ( $form->data['points'] > 17 && $form->data['points'] < 30 )
      $form->data['group'] = 'A.1.3';
    }
    ?>


Next page

Page 5 of 19 - level A1.3 questions 31-40

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 24 ) {
      $form->data['group'] = 'A.1.3';
    } else if ( $form->data['points'] > 23 && $form->data['points'] < 40 )
      $form->data['group'] = 'A.2.1';
    }
    ?>


Next page

Page 6 of 19 - level A2.1 questions 41-50

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 30 ) {
      $form->data['group'] = 'A.2.1';
    } else if ( $form->data['points'] > 29 && $form->data['points'] < 50 )
      $form->data['group'] = 'A.2.2';
    }
    ?>


Next page

Page 7 of 19 - level A2.2 questions 51-60

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 36 ) {
      $form->data['group'] = 'A.2.2';
    } else if ( $form->data['points'] > 35 && $form->data['points'] < 60 )
      $form->data['group'] = 'A.2.3';
    }
    ?>


Next page

Page 8 of 19 - level A2.3 questions 61-70


    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 42 ) {
      $form->data['group'] = 'A.2.3';
    } else if ( $form->data['points'] > 41 && $form->data['points'] < 70 )
      $form->data['group'] = 'B.1.1';
    }
    ?>


Next page

Page 9 of 19 - level B1.1 questions 71-80

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 48 ) {
      $form->data['group'] = 'B.1.1';
    } else if ( $form->data['points'] > 47 && $form->data['points'] < 80 )
      $form->data['group'] = 'B.1.2';
    }
    ?>


Next page

Page 10 of 19 - level B1.2 questions 81-90

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 54 ) {
      $form->data['group'] = 'B.1.2';
    } else if ( $form->data['points'] > 53 && $form->data['points'] < 90 )
      $form->data['group'] = 'B.1.3';
    }
    ?>


Next page

Page 11 of 19 - level B1.3 questions 91-100

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 60 ) {
      $form->data['group'] = 'B.1.3';
    } else if ( $form->data['points'] > 59 && $form->data['points'] < 100 )
      $form->data['group'] = 'B.2.1';
    }
    ?>


Next page

Page 12 of 19 - level A2.1 questions 101-110

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 66 ) {
      $form->data['group'] = 'B.2.1';
    } else if ( $form->data['points'] > 65 && $form->data['points'] < 110 )
      $form->data['group'] = 'B.2.2';
    }
    ?>


Next page

Page 13 of 19 - level B2.2 questions 111-120

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 72 ) {
      $form->data['group'] = 'B.2.2';
    } else if ( $form->data['points'] > 71 && $form->data['points'] < 120 )
      $form->data['group'] = 'B.2.3';
    }
    ?>


Next page

Page 14 of 19 - level B2.3 questions 121-130

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 78 ) {
      $form->data['group'] = 'B.2.3';
    } else if ( $form->data['points'] > 77 && $form->data['points'] < 130 )
      $form->data['group'] = 'B.2.4';
    }
    ?>


Next page

Page 15 of 19 - level B2.4 questions 131-140

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 84 ) {
      $form->data['group'] = 'B.2.4';
    } else if ( $form->data['points'] > 83 && $form->data['points'] < 140 )
      $form->data['group'] = 'C.1.1';
    }
    ?>


Next page

Page 16 of 19 - level C1.1 questions 141-150

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 90 ) {
      $form->data['group'] = 'C.1.1';
    } else if ( $form->data['points'] > 89 && $form->data['points'] < 150 )
      $form->data['group'] = 'C.1.2';
    }
    ?>


Next page

Page 17 of 19 - level C1.2 questions 151-160

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 96 ) {
      $form->data['group'] = 'C.1.2';
    } else if ( $form->data['points'] > 95 && $form->data['points'] < 160 )
      $form->data['group'] = 'C.1.3';
    }
    ?>


Next page

Page 18 of 19 - level C1.3 questions 161-170

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 102 ) {
      $form->data['group'] = 'C.1.3';
    } else if ( $form->data['points'] > 101 && $form->data['points'] < 170 )
      $form->data['group'] = 'C.1.4';
    }
    ?>


Next page

Page 19 of 19 - level C1.4 questions 171-180

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 108 ) {
      $form->data['group'] = 'C.1.4';
    } else if ( $form->data['points'] > 107 && $form->data['points'] < 180 )
      $form->data['group'] = 'C2';
    }
    ?>
sylwekb 30 Aug, 2016
Hello Bob. I made a multipage form, consisting of 19 pages:
1. - Page with personal data
2-19 - page proficiency polish language test 180 questions, each 4 Responses to choose a, b, c, d (one correct, three abnormal) Correct answer 1 point, incorrect 0 points.

With your help wrote out the number of points for each group of proficiency test

CHECKING THE TEST

At each trimester falls 10 questions. The student must have 6 correct answers to be considered as credited trimester.

Is this code for all multi-page forms is correct?

Bob, please write me step by step exactly where this code put it. Is there any help or tutorial on how to put it? Are there any print screenshots? Greatly facilitated and accelerated the work of ChronoForms especially for beginners like me.


    $form->data['radio1'] = 3
    $form->data['radio2'] = 2
    $form->data['radio3'] = 1
    . . .



    <?php
    $score = 0;
    if ( $form->data['radio1'] == 3 ) [
      $score++;
    }
    if ( $form->data['radio2'] == 1 ) [
      $score++;
    }
    if ( $form->data['radio3'] == 4 ) [
      $score++;
    }
    $form->data['score'] += $score;
    ?>


Page 2 of 19 - level A0 questions 1-10

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 6 ) {
      $form->data['group'] = 'A.0';
    } else if ( $form->data['points'] > 5 && $form->data['points'] < 10 )
      $form->data['group'] = 'A.1.1';
    }
    ?>


Next page

Page 3 of 19 - level A1.1 questions 11-20

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 12 ) {
      $form->data['group'] = 'A.1.1';
    } else if ( $form->data['points'] > 11 && $form->data['points'] < 20 )
      $form->data['group'] = 'A.1.2';
    }
    ?>


Next page

Page 4 of 19 - level A1.2 questions 21-30

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 18 ) {
      $form->data['group'] = 'A.1.2';
    } else if ( $form->data['points'] > 17 && $form->data['points'] < 30 )
      $form->data['group'] = 'A.1.3';
    }
    ?>


Next page

Page 5 of 19 - level A1.3 questions 31-40

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 24 ) {
      $form->data['group'] = 'A.1.3';
    } else if ( $form->data['points'] > 23 && $form->data['points'] < 40 )
      $form->data['group'] = 'A.2.1';
    }
    ?>


Next page

Page 6 of 19 - level A2.1 questions 41-50

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 30 ) {
      $form->data['group'] = 'A.2.1';
    } else if ( $form->data['points'] > 29 && $form->data['points'] < 50 )
      $form->data['group'] = 'A.2.2';
    }
    ?>


Next page

Page 7 of 19 - level A2.2 questions 51-60

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 36 ) {
      $form->data['group'] = 'A.2.2';
    } else if ( $form->data['points'] > 35 && $form->data['points'] < 60 )
      $form->data['group'] = 'A.2.3';
    }
    ?>


Next page

Page 8 of 19 - level A2.3 questions 61-70


    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 42 ) {
      $form->data['group'] = 'A.2.3';
    } else if ( $form->data['points'] > 41 && $form->data['points'] < 70 )
      $form->data['group'] = 'B.1.1';
    }
    ?>


Next page

Page 9 of 19 - level B1.1 questions 71-80

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 48 ) {
      $form->data['group'] = 'B.1.1';
    } else if ( $form->data['points'] > 47 && $form->data['points'] < 80 )
      $form->data['group'] = 'B.1.2';
    }
    ?>


Next page

Page 10 of 19 - level B1.2 questions 81-90

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 54 ) {
      $form->data['group'] = 'B.1.2';
    } else if ( $form->data['points'] > 53 && $form->data['points'] < 90 )
      $form->data['group'] = 'B.1.3';
    }
    ?>


Next page

Page 11 of 19 - level B1.3 questions 91-100

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 60 ) {
      $form->data['group'] = 'B.1.3';
    } else if ( $form->data['points'] > 59 && $form->data['points'] < 100 )
      $form->data['group'] = 'B.2.1';
    }
    ?>


Next page

Page 12 of 19 - level A2.1 questions 101-110

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 66 ) {
      $form->data['group'] = 'B.2.1';
    } else if ( $form->data['points'] > 65 && $form->data['points'] < 110 )
      $form->data['group'] = 'B.2.2';
    }
    ?>


Next page

Page 13 of 19 - level B2.2 questions 111-120

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 72 ) {
      $form->data['group'] = 'B.2.2';
    } else if ( $form->data['points'] > 71 && $form->data['points'] < 120 )
      $form->data['group'] = 'B.2.3';
    }
    ?>


Next page

Page 14 of 19 - level B2.3 questions 121-130

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 78 ) {
      $form->data['group'] = 'B.2.3';
    } else if ( $form->data['points'] > 77 && $form->data['points'] < 130 )
      $form->data['group'] = 'B.2.4';
    }
    ?>


Next page

Page 15 of 19 - level B2.4 questions 131-140

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 84 ) {
      $form->data['group'] = 'B.2.4';
    } else if ( $form->data['points'] > 83 && $form->data['points'] < 140 )
      $form->data['group'] = 'C.1.1';
    }
    ?>


Next page

Page 16 of 19 - level C1.1 questions 141-150

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 90 ) {
      $form->data['group'] = 'C.1.1';
    } else if ( $form->data['points'] > 89 && $form->data['points'] < 150 )
      $form->data['group'] = 'C.1.2';
    }
    ?>


Next page

Page 17 of 19 - level C1.2 questions 151-160

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 96 ) {
      $form->data['group'] = 'C.1.2';
    } else if ( $form->data['points'] > 95 && $form->data['points'] < 160 )
      $form->data['group'] = 'C.1.3';
    }
    ?>


Next page

Page 18 of 19 - level C1.3 questions 161-170

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 102 ) {
      $form->data['group'] = 'C.1.3';
    } else if ( $form->data['points'] > 101 && $form->data['points'] < 170 )
      $form->data['group'] = 'C.1.4';
    }
    ?>


Next page

Page 19 of 19 - level C1.4 questions 171-180

    <?php
    if ( $form->data['points'] > 0 && $form->data['points'] < 108 ) {
      $form->data['group'] = 'C.1.4';
    } else if ( $form->data['points'] > 107 && $form->data['points'] < 180 )
      $form->data['group'] = 'C2';
    }
    ?>
sylwekb 30 Aug, 2016
On page ChronoForms an SQL error. These data have been distorted. The correct code in the Atachement.

Bob write me step by step how to make points, summation and assignment to groups. I am new to ChronoForms and I do not know exactly where to add code.
GreyHead 30 Aug, 2016
Hi sylwekb,

I still don't understand this form. If there is one page per trimester why do you have all the pages in one form? Surely it would make sense to just show the ten questions for the current trimester??? That would make your form much simpler.

Bob
sylwekb 30 Aug, 2016
In that case I would have to perform 18 separate forms for each group? I would prefer, however, to one multipage forms do this, but it is complicated to do all these calculations and rewriting to the appropriate level group. How do the form step by step?
GreyHead 31 Aug, 2016
Hi sylwekb,

I'm sorry but I clearly don't understand how this form is set up? Please can you explain in detail as at present it isn't possible to answer your questions sensibly.

Is this one 19 page form that students complete all 19 pages each semester/level? Or is it just one page of questions for each semester/level?

Bob
sylwekb 31 Aug, 2016
Hi Bob
Link to form page http://fotofantazja.art.pl/testpoziomujacy/pl/?option=com_chronoforms5&chronoform=proficiency-test
is it just one page of questions for each semester/level please look follow scenario
Personal data - page 1 multipage form
LEVEL QUESTION
A0 1-10 page 2 multipage form
A1-1 11-20 page 3 multipage form
A1-2 21-30 page 4 multipage form
A1-3 31-40 page 5 multipage form
A2-1 41-50 page 6 multipage form
A2-2 51-60 page 7 multipage form
A2-3 61-70 page 8 multipage form
B1-1 71-80 page 9 multipage form
B1-2 81-90 page 10 multipage form
B1-3 91-100 page 11 multipage form
B2-1 101-110 page 12 multipage form
B2-2 111-120 page 13 multipage form
B2-3 121-130 page 14 multipage form
B2-4 131-140 page 15 multipage form
C1-1 141-150 page 16 multipage form
C1-2 151-160 page 17 multipage form
C1-3 161-170 page 18 multipage form
C1-4 171-180 page 19 multipage form

I am clearly explained?
sylwekb 31 Aug, 2016
Maybe this information will be helpful. At each trimester falls 10 questions. The student must have 6 correct answers to be considered as credited trimester.
sylwekb 31 Aug, 2016
Information on the qualification for a particular level / trimester e.g. A0 with a list of the resulting questions must be received by e-mail
sylwekb 31 Aug, 2016
On each of these pages must be possible to continue the test or send a test. I know it's strange in a multi page form to submit the form before the last page. But it should be a possibility.
GreyHead 31 Aug, 2016
Hi sylwekb,

I think that I begin to understand this.

If I've got it right I would not do this as a multi-page form - that is too complicated.

I'd start with a single page with a drop-down or radio buttons to select the level. Presumably you can identify the student so this can be pre-set with the next level they have to complete.

The second page would be just ten questions but I would load these dynamically from a database table with all the questions in it. That way you only have to maintain that single page. You can also randomise the correct answers so that the correct answer to Q A1 is not always option 1 (If it helps you can also randomise the order of the questions). When the page loads you create an answer key that is saved in the user session to use to check the answers on submission.

To do this you need a database table with columns like this
question_id, level, question_text, answers_text (could be one column or four), correct_answer

Use DB Read to get the data for the current level and some custom code to set it up form inclusion in a set of ten radio button groups as Dynamic Data or directly into a Custom Code element to generate the HTML there.

The third and last page would show the results, you'd also save them to a DB table as a part of the student record,

Bob
sylwekb 31 Aug, 2016
Thank Yoy Bob
Please write me how exactly to do step by step in ChronoForms? Is there a similar tutorial?
This topic is locked and no more replies can be posted.