- Timestamp:
- 07/21/11 18:24:53 (14 years ago)
- Location:
- Dev/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/classes/Question.php
r29 r32 15 15 public $type; 16 16 public $description; 17 public $answers; 17 public $answers; // format answers['#'] 18 18 19 19 public function __construct($title, $type, $description = null) -
Dev/trunk/classes/SurveyCreationTool.php
r30 r32 16 16 $this->timeStamp = $timeStamp; 17 17 18 if (isset($this->survey->id))18 if (isset($this->survey->id)) 19 19 SurveyCreationTool::javascript($this->survey->id); 20 20 else … … 38 38 /* autosave every 3 minutes */ 39 39 setTimeout("save('<?php echo $id; ?>')", 180000); 40 40 41 41 var questionCount = 1; 42 42 43 43 function getNewQuestion(title, description) 44 44 { … … 47 47 else 48 48 var title = 'Untitled Question'; 49 49 50 50 if (description != null) 51 51 var description = description; 52 52 else 53 53 var description = 'Write a question description here.'; 54 54 55 55 var questionDiv = document.createElement("div"); 56 56 var htmlStr = … … 73 73 "<div id='answersDiv" + questionCount + "' class='answersDiv'></div>" + 74 74 "</div>"; 75 75 76 76 questionDiv.innerHTML = htmlStr; 77 77 78 78 return questionDiv; 79 79 } 80 80 81 81 function handleFocus(input) 82 82 { … … 88 88 } 89 89 } 90 90 91 91 function handleBlur(input) 92 92 { 93 93 var surveyTitle = document.getElementById('surveyTitle'); 94 94 var surveyDescription = document.getElementById('surveyDescription'); 95 95 96 96 if (input.value == "") 97 97 { 98 98 input.style.color = "gray"; 99 99 input.clicked = null; 100 100 101 101 if (input == surveyTitle) 102 102 { … … 109 109 } 110 110 } 111 112 function handleType(select) 113 { 111 112 function handleType(select, answers) 113 { 114 var numQ = select.id; // questionNumber 114 115 var type = select.valueOf().value; 115 var answersDiv = document.getElementById("answersDiv" + select.id);116 var answersDiv = document.getElementById("answersDiv" + numQ ); 116 117 answersDiv.answerCount = 1; 117 118 answersDiv.clicked = null; 118 119 119 120 switch (type) { 120 121 case 'mc': 121 122 answersDiv.innerHTML = ""; 122 addOption(select.id); 123 123 if (answers != null) 124 { 125 for (var i = 1; i < answers.length; i++) 126 { 127 addOption(numQ, answers[i]); 128 } 129 } 130 else 131 addOption(numQ); 132 124 133 break; 125 134 case 'text': … … 128 137 case 'int': 129 138 answersDiv.innerHTML = ""; 139 130 140 //min max 131 minMax(select.id); 141 if (answers != null) 142 minMax(numQ, answers[1], answers[2]); 143 else 144 minMax(numQ); 132 145 break; 133 146 case 'checkboxes': 134 answersDiv.innerHTML = ""; 135 addOption(select.id); 147 answersDiv.innerHTML = ""; 148 if (answers != null) 149 { 150 for (var i = 1; i < answers.length; i++) 151 { 152 addOption(numQ, answers[i]); 153 } 154 } 155 else 156 addOption(numQ); 136 157 break; 137 158 case 'scale': 138 159 answersDiv.innerHTML = ""; 139 160 //what scale (min max incr) 140 minMaxIncr(select.id); 161 if (answers != null) 162 minMaxIncr(numQ, answers[1], answers[2], answers[3]); 163 else 164 minMaxIncr(numQ); 141 165 break; 142 166 default: … … 145 169 146 170 } 147 148 149 function addOption(questionNumber )171 172 173 function addOption(questionNumber, optionStr) 150 174 { 151 175 var answersDiv = document.getElementById("answersDiv" + questionNumber); 152 176 var answerCount = answersDiv.answerCount; 153 177 var answerDiv = document.createElement("div"); 178 179 if (optionStr == null) 180 var optionStr = "Option " + answerCount; 181 182 154 183 answerDiv.className = "answerDiv"; 155 184 156 185 var htmlStr = "<input type='text' name='q" + 157 questionNumber + "ans" + answerCount + "' value=' Option " + answerCount+ "' />";158 186 questionNumber + "ans" + answerCount + "' value='" + optionStr + "' />"; 187 159 188 if (answersDiv.clicked == null) 160 189 { … … 162 191 + " class='surveyButton' onclick='addOption(" + questionNumber + ")' value='Add Option' />" + 163 192 "<input type='button' class='surveyButton' onclick='removeOption(" + questionNumber + ")' value='x' />"; 164 193 165 194 answersDiv.clicked = true; 166 195 } 167 196 168 197 answerDiv.innerHTML = htmlStr; 169 198 170 199 answerDiv.prev = answersDiv.lastAnswer; //singly linked list 171 200 answersDiv.lastAnswer = answerDiv; 172 201 173 202 answersDiv.appendChild(answerDiv); 174 203 answersDiv.answerCount++; 175 204 } 176 205 177 206 function removeOption(questionNumber) 178 207 { 179 208 var answersDiv = document.getElementById("answersDiv" + questionNumber); 180 209 181 210 if (answersDiv.lastAnswer.prev != null) 182 211 { … … 186 215 } 187 216 } 188 189 function minMax(questionNumber) 190 { 217 218 function minMax(questionNumber, min, max) 219 { 220 if (min == null) 221 var min = ''; 222 if (max == null) 223 var max = ''; 224 191 225 var answersDiv = document.getElementById("answersDiv" + questionNumber); 192 226 193 227 var answerDiv = document.createElement("div"); 194 228 195 229 answerDiv.className = "answerDiv"; 196 answerDiv.innerHTML = "<label for='min'>Min</label><input type='text' name='q" + questionNumber + "ans1' />" +197 "<label for='max'>Max</label><input type='text' name='q" + questionNumber + "ans2' />";198 230 answerDiv.innerHTML = "<label for='min'>Min</label><input type='text' value='" + min + "' name='q" + questionNumber + "ans1' />" + 231 "<label for='max'>Max</label><input type='text' value='" + max + "' name='q" + questionNumber + "ans2' />"; 232 199 233 answersDiv.appendChild(answerDiv); 200 234 } 201 202 function minMaxIncr(questionNumber) 203 { 235 236 function minMaxIncr(questionNumber, left, right, incr) 237 { 238 if (left == null) 239 var left = ''; 240 if (right == null) 241 var right = ''; 242 if (incr == null) 243 var incr = ''; 244 204 245 var answersDiv = document.getElementById("answersDiv" + questionNumber); 205 246 206 247 var answerDiv = document.createElement("div"); 207 248 answerDiv.className = "answerDiv"; 208 answerDiv.innerHTML = "<label>Left label</label><input type='text' name='q" + questionNumber + "ans1' />" +209 "<label>Right label</label><input type='text' name='q" + questionNumber + "ans2' />" +210 "<label>Scale count</label><input type='text' name='q" + questionNumber + "ans3' />" +249 answerDiv.innerHTML = "<label>Left label</label><input type='text' value='" + left + "' name='q" + questionNumber + "ans1' />" + 250 "<label>Right label</label><input type='text' value='" + right + "' name='q" + questionNumber + "ans2' />" + 251 "<label>Scale count</label><input type='text' value='" + incr + "' name='q" + questionNumber + "ans3' />" + 211 252 "<div id='inputCheckFeedback'" + questionNumber + ""; 212 253 213 254 answersDiv.appendChild(answerDiv); 214 255 } 215 216 256 257 217 258 function addQuestion(title, description) 218 259 { 219 260 var questionsDiv = document.getElementById('questionsDiv'); 220 261 var newQuestion = getNewQuestion(title, description); 221 262 222 263 223 264 newQuestion.prev = document.lastQuestion; … … 227 268 questionCount++; 228 269 } 229 270 230 271 function removeLastQuestion() 231 272 { 232 273 var questionsDiv = document.getElementById('questionsDiv'); 233 274 234 275 if (document.lastQuestion.prev != null) 235 276 { … … 243 284 } 244 285 } 245 286 246 287 function save(surveyID) 247 288 { … … 249 290 var questionsDiv = document.getElementById('questionsDiv'); 250 291 form.action = "surveycreation.php"; 251 292 252 293 /* extra time stamp */ 253 294 var date = new Date(); … … 260 301 timeStampInput.value = timeStamp; 261 302 timeStampInput.type = "hidden"; 262 303 263 304 var surveyIDInput = document.createElement("input"); 264 305 surveyIDInput.name = "surveyID"; 265 306 surveyIDInput.value = surveyID; 266 307 surveyIDInput.type = "hidden"; 267 308 268 309 questionsDiv.appendChild(timeStampInput); 269 310 questionsDiv.appendChild(surveyIDInput); 270 311 form.submit(); 271 312 } 272 273 313 314 274 315 </script> 275 316 <?php … … 324 365 <?php 325 366 if (isset($this->survey)) { 326 foreach ($this->survey->questions as $ question) {367 foreach ($this->survey->questions as $numQ => $question) { 327 368 ?> 328 <script type="text/javascript"> addQuestion('<?php echo $question->title; ?>', '<?php echo $question->description; ?>'); 369 <script type="text/javascript"> 370 var answers = new Array(); 371 <?php 372 /* Put all answers in js array */ 373 foreach ($question->answers as $numA => $answer) { 374 echo "answers[" . $numA . "] = '" . $answer . "'; "; 375 } 376 ?> 377 378 addQuestion('<?php echo $question->title; ?>', '<?php echo $question->description; ?>'); 379 380 var select = document.getElementById('<?php echo $numQ; ?>'); 381 var type = '<?php echo $question->type; ?>'; 382 383 for (var i = 0; i < select.options.length; i++) { 384 if (select.options[i].value == type) 385 { 386 select.options[i].selected = true; 387 handleType(select, answers) 388 break; 389 } 390 } 391 329 392 </script> 330 393 <?php -
Dev/trunk/surveycreation.php
r29 r32 8 8 $timeStamp = $_POST['timeStamp']; 9 9 10 var_dump($_POST);11 echo '<br/><br/>';10 // var_dump($_POST); 11 // echo '<br/><br/>'; 12 12 $surveyDBI = new SurveyDatabaseInterface(); 13 13 $surveyDBI->setSurveyInfo($_POST); 14 14 $info = $surveyDBI->getSurveyInfo(); 15 echo '<br/><br/>';16 var_dump($info);15 // echo '<br/><br/>'; 16 // var_dump($info); 17 17 18 18 $savedSurvey = Survey::getSurvey($info);
Note: See TracChangeset
for help on using the changeset viewer.