about to start taking responses
"; return foreach ($_POST as $key=>$response) { print "1"; if( !(is_null($response) || $response == "") && (preg_match("|^questid_([[:digit:]]+)_formquest_([[:digit:]]+)_iter_([[:digit:]]+)_subquest_([[:digit:]]+)_type_([[:digit:]]+)(_enum_)?([[:digit:]]+)?(_decline)?$|",$key,$questnum))) { print "2"; $questid[] = $questnum[1]; $formquestnum[] = $questnum[2]; $questiter[] = $questnum[3]; $subquest[] = $questnum[4]; $df_id[] = $questnum[5]; $response_array[] = $response; print "qid=" . $questnum[1] . " formqnum=" . $questnum[2] . " qiter=" . $questnum[3] . " sq=" . $questnum[4] . " dfid=" . $questnum[5] . " resp=" . $response; } //for //sort the questions to ensure that all enum values for a particular question are in successive order if(sizeof($response_array) >= 1) { array_multisort( $questid, SORT_ASC, $formquestnum,SORT_ASC, $questiter, SORT_ASC, $subquest, SORT_ASC, $df_id, SORT_ASC, $response_array, SORT_ASC); } $response_idx = 0; while($response_idx < sizeof($response_array)) { //if session var submit_stimulus_id == TRUE, then submit the stimulus_id, else don't (submit NULL). For handling stim vs. non-stim forms. $_SESSION['submit_stimulus_id'] ? $record_stimulus_id = $_SESSION['stimulus_id'] : $record_stimulus_id = NULL; //if response should be encrypted, set appropriate encryption text if(($_SESSION['encrypted_response_table'])) { $enc_key = subinfo_encryption_key(); $resp_submit = sprintf("aes_encrypt(%s,%s)",GetSQLValueString($response_array[$response_idx],"text"),GetSQLValueString($enc_key,"text")); } else { $resp_submit = sprintf("%s",GetSQLValueString($response_array[$response_idx],"text")); } //create send_back_responses array (this is sent back to the form in the case that there was an error) //The responses are not submitted in this case $html_fieldname = sprintf("questid_%d_formquest_%d_iter_%d_subquest_%d_type_%d",$questid[$response_idx],$formquestnum[$response_idx], $questiter[$response_idx],$subquest[$response_idx],$df_id[$response_idx]); $send_back_responses[$html_fieldname] = $response_array[$response_idx]; //add this response as response_text to the query string $new_response_record = sprintf("(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", GetSQLValueString($_SESSION['response_order'],"int"), GetSQLValueString(date("Y-m-d H:i:s"),"date"), $resp_submit, //response_text field GetSQLValueString("","text"), //response_enum field sent as NULL GetSQLValueString($questid[$response_idx],"int"), GetSQLValueString($formquestnum[$response_idx],"int"), GetSQLValueString($questiter[$response_idx],"int"), GetSQLValueString($subquest[$response_idx],"int"), GetSQLValueString($record_stimulus_id,"int"), GetSQLValueString($_SESSION['form_id'],"int"), GetSQLValueString($_SESSION['last_visited'],"int"), GetSQLValueString($_SESSION['session_id'],"int"), GetSQLValueString($_SESSION['subject_id'],"text"), GetSQLValueString($_SESSION['experiment_id'],"int")); } //while if(sizeof($query_values) == 0) { $query_values = $new_response_record; } else { $query_values = $query_values.",".$new_response_record; } $response_idx++; //increment response_idx to next question } //for print "query values = " . $query_values . "
"; //submit all responses from the form in one query if(sizeof($query_values) > 0) { $query_insert_response = sprintf("INSERT INTO %s (response_order,date_time,response_text,response_enum,question_id,form_question_num,question_iteration,subquestion,stimulus_id,form_id,form_order,session_id,subject_id,experiment_id) ",$_SESSION['response_table']) . sprintf("VALUES".preg_replace("|%|","%%",$query_values).";"); mysql_select_db($database_subject,$subject); mysql_query($query_insert_response,$subject) or die(mysql_error()); print "" . mysql_affected_rows() . " rows inserted
"; $_SESSION['response_order']++; } else { print "nothing done!!"; } ?>