Dynamical branching in survey


Author
Message
dschulz
dschulz
Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)
Group: Forum Members
Posts: 21, Visits: 57
Dear Dave, dear Community,

I can't seem to get conditional branching within a survey right. To replicate my problems, I pasted an experiment below.
Problem a) When I use conditional branching, the Experiments sometimes messes up the surveypage order
Problem b) When I use conditional skipping, the Experiment locks at the first boolean value (if it was "true" for the first time, it will always skip this page even if the condition has changed)

Please press "Continue" and "Back" a few times to make sure, you can replicate my problems.

This issue seems to be the case if I use / pages = [1 = sequence(x)] or / pages = [1 = x ....].
I also tried a designated value.skipvalue, but this also does not seem to update the skip condition (even though the boolean value changes when checking within the Debugging Model (Ctrl+D)).

I hope you can help me. I do want to have keep it as a survey-Element (not a block) to make use of the "Back"-Button.

Thank you very much in advance,
Daniel



The Experiment:

<surveypage sp1>
/ caption = "Blank Page 1"
</surveypage>

<surveypage sp2>
/ caption = "Blank Page 2"
</surveypage>

<surveypage sp3>
/ caption = "Blank Page 3"
</surveypage>

<surveypage sp4>
/ caption = "Blank Page 4"
</surveypage>

<surveypage sp5>
/ caption = "Blank Page 5"
</surveypage>



<radiobuttons branch_sp_rb>
/ caption = "branch?"
/ options = ("Branch!", "Don't Branch!")
</radiobuttons>

<surveypage branch_sp>
/ caption = "This is the Radiobutton for branching"
/ questions = [1 = branch_sp_rb]
/ branch = [
    if (radiobuttons.branch_sp_rb.response == "Branch!") surveypage.target_sp
]
</surveypage>


<surveypage target_sp>
/ caption = "You decided to Branch..."
</surveypage>


<radiobuttons skip>
/ options = ("Yes", "No")
</radiobuttons>


<surveypage skip_decision_sp>
/ caption = "Do you want to Skip the next Question?"
/ questions = [1 = skip]
</surveypage>

<surveypage sp_to_skip>
/ caption = "You decided not to skip"
/ skip = [
    radiobuttons.skip.response == "Yes"
]
</surveypage>





<survey survey_sequence>
/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
dschulz - 7/15/2020
Dear Dave, dear Community,

I can't seem to get conditional branching within a survey right. To replicate my problems, I pasted an experiment below.
Problem a) When I use conditional branching, the Experiments sometimes messes up the surveypage order
Problem b) When I use conditional skipping, the Experiment locks at the first boolean value (if it was "true" for the first time, it will always skip this page even if the condition has changed)

Please press "Continue" and "Back" a few times to make sure, you can replicate my problems.

This issue seems to be the case if I use / pages = [1 = sequence(x)] or / pages = [1 = x ....].
I also tried a designated value.skipvalue, but this also does not seem to update the skip condition (even though the boolean value changes when checking within the Debugging Model (Ctrl+D)).

I hope you can help me. I do want to have keep it as a survey-Element (not a block) to make use of the "Back"-Button.

Thank you very much in advance,
Daniel



The Experiment:

<surveypage sp1>
/ caption = "Blank Page 1"
</surveypage>

<surveypage sp2>
/ caption = "Blank Page 2"
</surveypage>

<surveypage sp3>
/ caption = "Blank Page 3"
</surveypage>

<surveypage sp4>
/ caption = "Blank Page 4"
</surveypage>

<surveypage sp5>
/ caption = "Blank Page 5"
</surveypage>



<radiobuttons branch_sp_rb>
/ caption = "branch?"
/ options = ("Branch!", "Don't Branch!")
</radiobuttons>

<surveypage branch_sp>
/ caption = "This is the Radiobutton for branching"
/ questions = [1 = branch_sp_rb]
/ branch = [
    if (radiobuttons.branch_sp_rb.response == "Branch!") surveypage.target_sp
]
</surveypage>


<surveypage target_sp>
/ caption = "You decided to Branch..."
</surveypage>


<radiobuttons skip>
/ options = ("Yes", "No")
</radiobuttons>


<surveypage skip_decision_sp>
/ caption = "Do you want to Skip the next Question?"
/ questions = [1 = skip]
</surveypage>

<surveypage sp_to_skip>
/ caption = "You decided not to skip"
/ skip = [
    radiobuttons.skip.response == "Yes"
]
</surveypage>





<survey survey_sequence>
/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>



When you define pages like this

/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]

the sequence is treated as a single unit, which can and will cause problems navigating back and forth when branching and skipping is thrown into the mix.

/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]

on the other hand, should be /branch-friendly and generally work as expected. As the the /skip issue, that is a known limitation and there is no solution I can offer other than -- if possible -- using /branch instead.

dschulz
dschulz
Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)
Group: Forum Members
Posts: 21, Visits: 57
Dave - 7/15/2020
dschulz - 7/15/2020
Dear Dave, dear Community,

I can't seem to get conditional branching within a survey right. To replicate my problems, I pasted an experiment below.
Problem a) When I use conditional branching, the Experiments sometimes messes up the surveypage order
Problem b) When I use conditional skipping, the Experiment locks at the first boolean value (if it was "true" for the first time, it will always skip this page even if the condition has changed)

Please press "Continue" and "Back" a few times to make sure, you can replicate my problems.

This issue seems to be the case if I use / pages = [1 = sequence(x)] or / pages = [1 = x ....].
I also tried a designated value.skipvalue, but this also does not seem to update the skip condition (even though the boolean value changes when checking within the Debugging Model (Ctrl+D)).

I hope you can help me. I do want to have keep it as a survey-Element (not a block) to make use of the "Back"-Button.

Thank you very much in advance,
Daniel



The Experiment:

<surveypage sp1>
/ caption = "Blank Page 1"
</surveypage>

<surveypage sp2>
/ caption = "Blank Page 2"
</surveypage>

<surveypage sp3>
/ caption = "Blank Page 3"
</surveypage>

<surveypage sp4>
/ caption = "Blank Page 4"
</surveypage>

<surveypage sp5>
/ caption = "Blank Page 5"
</surveypage>



<radiobuttons branch_sp_rb>
/ caption = "branch?"
/ options = ("Branch!", "Don't Branch!")
</radiobuttons>

<surveypage branch_sp>
/ caption = "This is the Radiobutton for branching"
/ questions = [1 = branch_sp_rb]
/ branch = [
    if (radiobuttons.branch_sp_rb.response == "Branch!") surveypage.target_sp
]
</surveypage>


<surveypage target_sp>
/ caption = "You decided to Branch..."
</surveypage>


<radiobuttons skip>
/ options = ("Yes", "No")
</radiobuttons>


<surveypage skip_decision_sp>
/ caption = "Do you want to Skip the next Question?"
/ questions = [1 = skip]
</surveypage>

<surveypage sp_to_skip>
/ caption = "You decided not to skip"
/ skip = [
    radiobuttons.skip.response == "Yes"
]
</surveypage>





<survey survey_sequence>
/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>



When you define pages like this

/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]

the sequence is treated as a single unit, which can and will cause problems navigating back and forth when branching and skipping is thrown into the mix.

/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]

on the other hand, should be /branch-friendly and generally work as expected. As the the /skip issue, that is a known limitation and there is no solution I can offer other than -- if possible -- using /branch instead.

Dear Dave,

thank you for the quick reply. Sadly I am also having problems with option 2 (see survey below). It does not reliably branch from sp1 to sp2 to sp3 and so on when changing the branching condition and moving through the survey... Sorry for the inconvenience.

Best,
Daniel

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
dschulz - 7/15/2020
Dave - 7/15/2020
dschulz - 7/15/2020
Dear Dave, dear Community,

I can't seem to get conditional branching within a survey right. To replicate my problems, I pasted an experiment below.
Problem a) When I use conditional branching, the Experiments sometimes messes up the surveypage order
Problem b) When I use conditional skipping, the Experiment locks at the first boolean value (if it was "true" for the first time, it will always skip this page even if the condition has changed)

Please press "Continue" and "Back" a few times to make sure, you can replicate my problems.

This issue seems to be the case if I use / pages = [1 = sequence(x)] or / pages = [1 = x ....].
I also tried a designated value.skipvalue, but this also does not seem to update the skip condition (even though the boolean value changes when checking within the Debugging Model (Ctrl+D)).

I hope you can help me. I do want to have keep it as a survey-Element (not a block) to make use of the "Back"-Button.

Thank you very much in advance,
Daniel



The Experiment:

<surveypage sp1>
/ caption = "Blank Page 1"
</surveypage>

<surveypage sp2>
/ caption = "Blank Page 2"
</surveypage>

<surveypage sp3>
/ caption = "Blank Page 3"
</surveypage>

<surveypage sp4>
/ caption = "Blank Page 4"
</surveypage>

<surveypage sp5>
/ caption = "Blank Page 5"
</surveypage>



<radiobuttons branch_sp_rb>
/ caption = "branch?"
/ options = ("Branch!", "Don't Branch!")
</radiobuttons>

<surveypage branch_sp>
/ caption = "This is the Radiobutton for branching"
/ questions = [1 = branch_sp_rb]
/ branch = [
    if (radiobuttons.branch_sp_rb.response == "Branch!") surveypage.target_sp
]
</surveypage>


<surveypage target_sp>
/ caption = "You decided to Branch..."
</surveypage>


<radiobuttons skip>
/ options = ("Yes", "No")
</radiobuttons>


<surveypage skip_decision_sp>
/ caption = "Do you want to Skip the next Question?"
/ questions = [1 = skip]
</surveypage>

<surveypage sp_to_skip>
/ caption = "You decided not to skip"
/ skip = [
    radiobuttons.skip.response == "Yes"
]
</surveypage>





<survey survey_sequence>
/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>



When you define pages like this

/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]

the sequence is treated as a single unit, which can and will cause problems navigating back and forth when branching and skipping is thrown into the mix.

/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]

on the other hand, should be /branch-friendly and generally work as expected. As the the /skip issue, that is a known limitation and there is no solution I can offer other than -- if possible -- using /branch instead.

Dear Dave,

thank you for the quick reply. Sadly I am also having problems with option 2 (see survey below). It does not reliably branch from sp1 to sp2 to sp3 and so on when changing the branching condition and moving through the survey... Sorry for the inconvenience.

Best,
Daniel

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

> It does not reliably branch from sp1 to sp2 to sp3

There is no branching to or from those pages, so I'm not sure at all what you mean. There's only one /branch -- from branch_sp to target_sp -- and I cannot find any issue with that when testing the code.

dschulz
dschulz
Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)
Group: Forum Members
Posts: 21, Visits: 57
Dave - 7/15/2020
dschulz - 7/15/2020
Dave - 7/15/2020
dschulz - 7/15/2020
Dear Dave, dear Community,

I can't seem to get conditional branching within a survey right. To replicate my problems, I pasted an experiment below.
Problem a) When I use conditional branching, the Experiments sometimes messes up the surveypage order
Problem b) When I use conditional skipping, the Experiment locks at the first boolean value (if it was "true" for the first time, it will always skip this page even if the condition has changed)

Please press "Continue" and "Back" a few times to make sure, you can replicate my problems.

This issue seems to be the case if I use / pages = [1 = sequence(x)] or / pages = [1 = x ....].
I also tried a designated value.skipvalue, but this also does not seem to update the skip condition (even though the boolean value changes when checking within the Debugging Model (Ctrl+D)).

I hope you can help me. I do want to have keep it as a survey-Element (not a block) to make use of the "Back"-Button.

Thank you very much in advance,
Daniel



The Experiment:

<surveypage sp1>
/ caption = "Blank Page 1"
</surveypage>

<surveypage sp2>
/ caption = "Blank Page 2"
</surveypage>

<surveypage sp3>
/ caption = "Blank Page 3"
</surveypage>

<surveypage sp4>
/ caption = "Blank Page 4"
</surveypage>

<surveypage sp5>
/ caption = "Blank Page 5"
</surveypage>



<radiobuttons branch_sp_rb>
/ caption = "branch?"
/ options = ("Branch!", "Don't Branch!")
</radiobuttons>

<surveypage branch_sp>
/ caption = "This is the Radiobutton for branching"
/ questions = [1 = branch_sp_rb]
/ branch = [
    if (radiobuttons.branch_sp_rb.response == "Branch!") surveypage.target_sp
]
</surveypage>


<surveypage target_sp>
/ caption = "You decided to Branch..."
</surveypage>


<radiobuttons skip>
/ options = ("Yes", "No")
</radiobuttons>


<surveypage skip_decision_sp>
/ caption = "Do you want to Skip the next Question?"
/ questions = [1 = skip]
</surveypage>

<surveypage sp_to_skip>
/ caption = "You decided not to skip"
/ skip = [
    radiobuttons.skip.response == "Yes"
]
</surveypage>





<survey survey_sequence>
/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>



When you define pages like this

/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]

the sequence is treated as a single unit, which can and will cause problems navigating back and forth when branching and skipping is thrown into the mix.

/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]

on the other hand, should be /branch-friendly and generally work as expected. As the the /skip issue, that is a known limitation and there is no solution I can offer other than -- if possible -- using /branch instead.

Dear Dave,

thank you for the quick reply. Sadly I am also having problems with option 2 (see survey below). It does not reliably branch from sp1 to sp2 to sp3 and so on when changing the branching condition and moving through the survey... Sorry for the inconvenience.

Best,
Daniel

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

> It does not reliably branch from sp1 to sp2 to sp3

There is no branching to or from those pages, so I'm not sure at all what you mean. There's only one /branch -- from branch_sp to target_sp -- and I cannot find any issue with that when testing the code.

If I rund the survey, choose to branch, go back and chose not to branch and then go back and forth between tha pages, it sometimes displays page 3 multiple times or skips a page...

I hope I made myself clearer
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
dschulz - 7/15/2020
Dave - 7/15/2020
dschulz - 7/15/2020
Dave - 7/15/2020
dschulz - 7/15/2020
Dear Dave, dear Community,

I can't seem to get conditional branching within a survey right. To replicate my problems, I pasted an experiment below.
Problem a) When I use conditional branching, the Experiments sometimes messes up the surveypage order
Problem b) When I use conditional skipping, the Experiment locks at the first boolean value (if it was "true" for the first time, it will always skip this page even if the condition has changed)

Please press "Continue" and "Back" a few times to make sure, you can replicate my problems.

This issue seems to be the case if I use / pages = [1 = sequence(x)] or / pages = [1 = x ....].
I also tried a designated value.skipvalue, but this also does not seem to update the skip condition (even though the boolean value changes when checking within the Debugging Model (Ctrl+D)).

I hope you can help me. I do want to have keep it as a survey-Element (not a block) to make use of the "Back"-Button.

Thank you very much in advance,
Daniel



The Experiment:

<surveypage sp1>
/ caption = "Blank Page 1"
</surveypage>

<surveypage sp2>
/ caption = "Blank Page 2"
</surveypage>

<surveypage sp3>
/ caption = "Blank Page 3"
</surveypage>

<surveypage sp4>
/ caption = "Blank Page 4"
</surveypage>

<surveypage sp5>
/ caption = "Blank Page 5"
</surveypage>



<radiobuttons branch_sp_rb>
/ caption = "branch?"
/ options = ("Branch!", "Don't Branch!")
</radiobuttons>

<surveypage branch_sp>
/ caption = "This is the Radiobutton for branching"
/ questions = [1 = branch_sp_rb]
/ branch = [
    if (radiobuttons.branch_sp_rb.response == "Branch!") surveypage.target_sp
]
</surveypage>


<surveypage target_sp>
/ caption = "You decided to Branch..."
</surveypage>


<radiobuttons skip>
/ options = ("Yes", "No")
</radiobuttons>


<surveypage skip_decision_sp>
/ caption = "Do you want to Skip the next Question?"
/ questions = [1 = skip]
</surveypage>

<surveypage sp_to_skip>
/ caption = "You decided not to skip"
/ skip = [
    radiobuttons.skip.response == "Yes"
]
</surveypage>





<survey survey_sequence>
/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>



When you define pages like this

/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]

the sequence is treated as a single unit, which can and will cause problems navigating back and forth when branching and skipping is thrown into the mix.

/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]

on the other hand, should be /branch-friendly and generally work as expected. As the the /skip issue, that is a known limitation and there is no solution I can offer other than -- if possible -- using /branch instead.

Dear Dave,

thank you for the quick reply. Sadly I am also having problems with option 2 (see survey below). It does not reliably branch from sp1 to sp2 to sp3 and so on when changing the branching condition and moving through the survey... Sorry for the inconvenience.

Best,
Daniel

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

> It does not reliably branch from sp1 to sp2 to sp3

There is no branching to or from those pages, so I'm not sure at all what you mean. There's only one /branch -- from branch_sp to target_sp -- and I cannot find any issue with that when testing the code.

If I rund the survey, choose to branch, go back and chose not to branch and then go back and forth between tha pages, it sometimes displays page 3 multiple times or skips a page...

I hope I made myself clearer

Thank you for the clarification. I don't think that's solvable, I'm afraid.

dschulz
dschulz
Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)Associate Member (287 reputation)
Group: Forum Members
Posts: 21, Visits: 57
Dave - 7/15/2020
dschulz - 7/15/2020
Dave - 7/15/2020
dschulz - 7/15/2020
Dave - 7/15/2020
dschulz - 7/15/2020
Dear Dave, dear Community,

I can't seem to get conditional branching within a survey right. To replicate my problems, I pasted an experiment below.
Problem a) When I use conditional branching, the Experiments sometimes messes up the surveypage order
Problem b) When I use conditional skipping, the Experiment locks at the first boolean value (if it was "true" for the first time, it will always skip this page even if the condition has changed)

Please press "Continue" and "Back" a few times to make sure, you can replicate my problems.

This issue seems to be the case if I use / pages = [1 = sequence(x)] or / pages = [1 = x ....].
I also tried a designated value.skipvalue, but this also does not seem to update the skip condition (even though the boolean value changes when checking within the Debugging Model (Ctrl+D)).

I hope you can help me. I do want to have keep it as a survey-Element (not a block) to make use of the "Back"-Button.

Thank you very much in advance,
Daniel



The Experiment:

<surveypage sp1>
/ caption = "Blank Page 1"
</surveypage>

<surveypage sp2>
/ caption = "Blank Page 2"
</surveypage>

<surveypage sp3>
/ caption = "Blank Page 3"
</surveypage>

<surveypage sp4>
/ caption = "Blank Page 4"
</surveypage>

<surveypage sp5>
/ caption = "Blank Page 5"
</surveypage>



<radiobuttons branch_sp_rb>
/ caption = "branch?"
/ options = ("Branch!", "Don't Branch!")
</radiobuttons>

<surveypage branch_sp>
/ caption = "This is the Radiobutton for branching"
/ questions = [1 = branch_sp_rb]
/ branch = [
    if (radiobuttons.branch_sp_rb.response == "Branch!") surveypage.target_sp
]
</surveypage>


<surveypage target_sp>
/ caption = "You decided to Branch..."
</surveypage>


<radiobuttons skip>
/ options = ("Yes", "No")
</radiobuttons>


<surveypage skip_decision_sp>
/ caption = "Do you want to Skip the next Question?"
/ questions = [1 = skip]
</surveypage>

<surveypage sp_to_skip>
/ caption = "You decided not to skip"
/ skip = [
    radiobuttons.skip.response == "Yes"
]
</surveypage>





<survey survey_sequence>
/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>



When you define pages like this

/ pages = [1 = sequence(sp1, sp2, sp3, branch_sp, sp4, skip_decision_sp, sp_to_skip, sp5)]

the sequence is treated as a single unit, which can and will cause problems navigating back and forth when branching and skipping is thrown into the mix.

/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = skip_decision_sp; 7 = sp_to_skip; 8 = sp5]

on the other hand, should be /branch-friendly and generally work as expected. As the the /skip issue, that is a known limitation and there is no solution I can offer other than -- if possible -- using /branch instead.

Dear Dave,

thank you for the quick reply. Sadly I am also having problems with option 2 (see survey below). It does not reliably branch from sp1 to sp2 to sp3 and so on when changing the branching condition and moving through the survey... Sorry for the inconvenience.

Best,
Daniel

<survey survey_numbered>
/ pages = [1 = sp1; 2 = sp2; 3 = sp3; 4 = branch_sp; 5 = sp4; 6 = sp5]
/ fontstyle = ("Times New Roman", 5%, false, false, false, false, 5, 1)
</survey>

> It does not reliably branch from sp1 to sp2 to sp3

There is no branching to or from those pages, so I'm not sure at all what you mean. There's only one /branch -- from branch_sp to target_sp -- and I cannot find any issue with that when testing the code.

If I rund the survey, choose to branch, go back and chose not to branch and then go back and forth between tha pages, it sometimes displays page 3 multiple times or skips a page...

I hope I made myself clearer

Thank you for the clarification. I don't think that's solvable, I'm afraid.

Too bad...

Thank you for your help.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search