survsimp_question_display db question_id { edit_previous_response_p "f" }What it does:
Returns a string of HTML to display for a question, suitable for embedding in a form. The form variable is of the form "response_to_question_$question_id.Defined in: /web/philip/tcl/survey-simple-defs.tcl
Source code:
set element_name "response_to_question_$question_id" set selection [ns_db 1row $db "select * from survsimp_questions where question_id = $question_id"] set_variables_after_query set html $question_text if { $presentation_alignment == "below" } { append html "<br>" } else { append html " " } set user_value "" if {$edit_previous_response_p == "t"} { set user_id [ad_get_user_id] set prev_response_query "select choice_id, boolean_answer, clob_answer, number_answer, varchar_answer, date_answer from survsimp_question_responses where question_id = $question_id and response_id = (select max(response_id) from survsimp_responses r, survsimp_questions q where q.question_id = $question_id and r.user_id = $user_id and q.survey_id = r.survey_id)" set selection [ns_db select $db $prev_response_query] set count 0 while {[ns_db getrow $db $selection]} { set_variables_after_query incr count if {$presentation_type == "checkbox"} { set selected_choices($choice_id) "t" } } if {$count == 0} { set choice_id 0 set boolean_answer "" set clob_answer "" set number_answer "" set varchar_answer "" set date_answer "" } } switch -- $presentation_type { "textbox" { if {$edit_previous_response_p == "t"} { if {$abstract_data_type == "number" || $abstract_data_type == "integer"} { set user_value $number_answer } else { set user_value $varchar_answer } } append html "<input type=text name=$element_name value=\"[philg_quote_double_quotes $user_value]\" [ad_decode $presentation_options "large" "size=70" "medium" "size=40" "size=10"]>" } "textarea" { if {$edit_previous_response_p == "t"} { set user_value $clob_answer } append html "<textarea name=$element_name $presentation_options>$user_value</textarea>" } "date" { if {$edit_previous_response_p == "t"} { set user_value $date_answer } append html "[ad_dateentrywidget $element_name $user_value]" } "select" { if { $abstract_data_type == "boolean" } { if {$edit_previous_response_p == "t"} { set user_value $boolean_answer } append html "<select name=$element_name> <option value=\"\">Select One</option> <option value=\"t\" [ad_decode $user_value "t" "selected" ""]>True</option> <option value=\"f\" [ad_decode $user_value "f" "selected" ""]>False</option> </select> " } else { if {$edit_previous_response_p == "t"} { set user_value $choice_id } append html "<select name=$element_name> <option value=\"\">Select One</option>\n" set selection [ns_db select $db "select choice_id, label from survsimp_question_choices where question_id = $question_id order by sort_order"] while { [ns_db getrow $db $selection] } { set_variables_after_query if { $user_value == $choice_id } { append html "<option value=$choice_id selected>$label</option>\n" } else { append html "<option value=$choice_id>$label</option>\n" } } append html "</select>" } } "radio" { if { $abstract_data_type == "boolean" } { if {$edit_previous_response_p == "t"} { set user_value $boolean_answer } set choices [list "<input type=radio name=$element_name value=t [ad_decode $user_value "t" "checked" ""]> True" "<input type=radio name=$element_name value=f [ad_decode $user_value "f" "checked" ""]> False"] } else { if {$edit_previous_response_p == "t"} { set user_value $choice_id } set choices [list] set selection [ns_db select $db "select choice_id, label from survsimp_question_choices where question_id = $question_id order by sort_order"] while { [ns_db getrow $db $selection] } { set_variables_after_query if { $user_value == $choice_id } { lappend choices "<input type=radio name=$element_name value=$choice_id checked> $label" } else { lappend choices "<input type=radio name=$element_name value=$choice_id> $label" } } } if { $presentation_alignment == "beside" } { append html [join $choices " "] } else { append html "<blockquote>\n[join $choices "<br>\n"]\n</blockquote>" } } "checkbox" { set choices [list] set selection [ns_db select $db "select * from survsimp_question_choices where question_id = $question_id order by sort_order"] while { [ns_db getrow $db $selection] } { set_variables_after_query if { [info exists selected_choices($choice_id)] } { lappend choices "<input type=checkbox name=$element_name value=$choice_id checked> $label" } else { lappend choices "<input type=checkbox name=$element_name value=$choice_id> $label" } } if { $presentation_alignment == "beside" } { append html [join $choices " "] } else { append html "<blockquote>\n[join $choices "<br>\n"]\n</blockquote>" } } } return $html