Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

Grid text question

hi everyone,
hope all is well.

I have a Q3 grid opened question  with 10 options, I need if respondent fill 3 or more options in q3 than show these selected options in the next question Q4(grid ranking question)

I m using constructed list with Perl and using these below mention codes in perl. but not working

any suggestion will be appreciated.

Begin Unverified Perl
if (GETVALUE("C3_r1_c1")!= ""){ADD("C3xR1",1)}
if (GETVALUE("C3_r2_c1")!= ""){ADD("C3xR1",2)}
if (GETVALUE("C3_r3_c1")!= ""){ADD("C3xR1",3)}
if (GETVALUE("C3_r4_c1")!= ""){ADD("C3xR1",4)}
if (GETVALUE("C3_r5_c1")!= ""){ADD("C3xR1",5)}
if (GETVALUE("C3_r6_c1")!= ""){ADD("C3xR1",6)}
if (GETVALUE("C3_r7_c1")!= ""){ADD("C3xR1",7)}
if (GETVALUE("C3_r8_c1")!= ""){ADD("C3xR1",8)}
if (GETVALUE("C3_r9_c1")!= ""){ADD("C3xR1",9)}
if (GETVALUE("C3_r10_c1")!= ""){ADD("C3xR1",10)}
End Unverified
asked Sep 8, 2021 by Ali Raza Bronze (930 points)

1 Answer

+1 vote
 
Best answer
How does this solution work for you ...
Begin Unverified Perl

 my $i=1;

 for($i=1; $i<=10; $i++)
  {
   if(length(GETVALUE("C3_r".$i."_c1"))>0)
    {  
     ADD("C3xR1",$i);
    }  
  }

End Unverified

It applies a more efficient loop approach and uses the "length" function.

And I believe your script is not working because the operator should be "ne" rather than "!=". Perl uses "eq" for equal and "ne" for not equal" when comparing strings in conditional script such as this example you presented.
answered Sep 8, 2021 by Paul Moon Platinum (96,820 points)
selected Sep 8, 2021 by Ali Raza
it's working :)
Did you try the loop method or just change your script?

Both will do the job.
using the loop method.
Good one. Glad to see you got it working.
...