Changeset 36 for Dev


Ignore:
Timestamp:
07/21/11 20:04:58 (14 years ago)
Author:
fpvanagthoven
Message:

QuestionID gets removed when answerType changes. Not yet when answers change.

Location:
Dev/trunk
Files:
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • Dev/trunk/classes/SurveyButton.php

    r32 r36  
    1010 * @author fpvanagthoven
    1111 */
    12 class NewSurveyButton {
     12class SurveyButton {
    1313
    1414    public function __construct() {
     15       
     16    }
     17
     18    public static function newSurveyButton() {
    1519        ?>
    1620
    1721        <form action="surveycreation.php" method="post">
    1822
    19             <input id="newSurveyButton" type="submit" name="btnlogin" value="Create new survey" class="surveyButton" />
     23            <input type="submit" value="Create new survey" class="surveyButton bigSurveyButton" />
     24
     25        </form>
     26
     27        <?php
     28    }
     29
     30    public static function loadSurveyButton() {
     31        ?>
     32
     33        <form action="surveycreation.php" method="post">
     34
     35            <input type="submit" value="Load survey" class="surveyButton bigSurveyButton" />
    2036
    2137        </form>
  • Dev/trunk/classes/SurveyCreationTool.php

    r35 r36  
    3838            /* autosave every 3 minutes */
    3939            setTimeout("save('<?php echo $id; ?>')", 180000);
    40                                                                                                                                                            
     40                                                                                                                                                                           
    4141            var questionCount = 1;         
    42                                                                                                                                                                                                                                                                                                    
     42                                                                                                                                                                                                                                                                                                                   
    4343            function getNewQuestion(title, description)
    4444            {
    4545                if (title == null)
    4646                    var title = 'Untitled Question';
    47                                                                                                
     47                                                                                                               
    4848                if (description != null)
    4949                    var description = description;
    5050                else
    5151                    var description = 'Write a question description here.';
    52                                                                                                                    
     52                                                                                                                                   
    5353                var questionDiv = document.createElement("div");
    5454                var htmlStr =
     
    7171                    "<div id='answersDiv" + questionCount + "' class='answersDiv'></div>" +
    7272                    "</div>";
    73                                                                                                                                                                                                                                                                                                
     73                                                                                                                                                                                                                                                                                                               
    7474                questionDiv.innerHTML = htmlStr;
    75                                                                                                                                                                                                                                                                                                
     75                                                                                                                                                                                                                                                                                                               
    7676                return questionDiv;
    7777            }
    78                                                                                                                                                                                                                                                                                                    
     78                                                                                                                                                                                                                                                                                                                   
    7979            function handleFocus(input)
    8080            {
     
    9191                }
    9292            }
    93                                                                                                                                                                                                                                                                                                                                    
     93                                                                                                                                                                                                                                                                                                                                                   
    9494            function handleBlur(input)
    9595            {       
    9696                var surveyTitle = document.getElementById('surveyTitle');
    9797                var surveyDescription = document.getElementById('surveyDescription');
    98                                                                                                                                                                                                                                                                                                                    
     98                                                                                                                                                                                                                                                                                                                                   
    9999                if (input.value == "")
    100100                {
    101101                    input.style.color = "gray";
    102102                    input.clicked = null;
    103                                                                                                                                                                                                                                                                                                                                            
     103                                                                                                                                                                                                                                                                                                                                                           
    104104                    if (input == surveyTitle)
    105105                    {
     
    112112                }                           
    113113            }
    114                                                                                                                                                                                                                                                                                    
     114                                                                                                                                                                                                                                                                                                   
    115115            function handleType(select, answers)
    116116            {
     
    118118                var type = select.valueOf().value;
    119119                var answersDiv = document.getElementById("answersDiv" + numQ );
     120               
     121                /* When type changes, remove question ID, because question changes */
     122                var questionIDInput = document.getElementById("questionID" + numQ);
     123                if (questionIDInput != null)
     124                {
     125                    var questionsDiv = document.getElementById("questionsDiv");
     126                    questionsDiv.removeChild(questionIDInput);
     127                }
     128
    120129                answersDiv.answerCount = 1;
    121130                answersDiv.clicked = null;
    122                                                                                                                                                                                                                                        
     131                                                                                                                                                                                                                                                       
    123132                switch (type) {
    124133                    case 'mc':
     
    133142                        else
    134143                            addOption(numQ);
    135                                                                                                                                                                                                                                                                        
     144                                                                                                                                                                                                                                                                                       
    136145                        break;
    137146                    case 'text':
     
    140149                    case 'int':   
    141150                        answersDiv.innerHTML = "";
    142                                                                                                
     151                                                                                                               
    143152                        //min max
    144153                        if (answers != null)
     
    172181
    173182            }
    174                                                                                                                                                                                                                                                                    
    175                                                                                                                                                                                                                                                            
     183                                                                                                                                                                                                                                                                                   
     184                                                                                                                                                                                                                                                                           
    176185            function addOption(questionNumber, optionStr)
    177186            {       
     
    179188                var answerCount = answersDiv.answerCount;
    180189                var answerDiv = document.createElement("div");
    181                                
     190                                               
    182191                if (optionStr == null)
    183192                    var optionStr = "Option " + answerCount;
    184                                
    185                                
     193                                               
     194                                              
    186195                answerDiv.className = "answerDiv";
    187                                                                                                                                                                                                                                                                
     196                                                                                                                                                                                                                                                                               
    188197                var htmlStr = "<input type='text' name='q" +
    189198                    questionNumber + "ans" + answerCount + "' value='" + optionStr + "' />";
    190                                                                                                                                                                                                                                        
     199                                                                                                                                                                                                                                                       
    191200                if (answersDiv.clicked == null)
    192201                {
     
    194203                        + " class='surveyButton' onclick='addOption(" + questionNumber + ")' value='Add Option' />" +
    195204                        "<input type='button' class='surveyButton' onclick='removeOption(" + questionNumber + ")' value='x' />";
    196                                                                                                                                                                                                            
     205                                                                                                                                                                                                                           
    197206                    answersDiv.clicked = true;
    198207                }
    199                                                                                                                                                                                                                                                                        
     208                                                                                                                                                                                                                                                                                      
    200209                answerDiv.innerHTML = htmlStr;
    201                                                                                                                                                                                                        
     210                                                                                                                                                                                                                       
    202211                answerDiv.prev = answersDiv.lastAnswer; //singly linked list
    203212                answersDiv.lastAnswer = answerDiv;
    204                                                                                                                                                                                                                                                                        
     213                                                                                                                                                                                                                                                                                      
    205214                answersDiv.appendChild(answerDiv);
    206215                answersDiv.answerCount++;
    207216            }
    208                                                                                                                                                                                                    
     217                                                                                                                                                                                                                   
    209218            function removeOption(questionNumber)
    210219            {
    211220                var answersDiv = document.getElementById("answersDiv" + questionNumber);
    212                                                                                                                                                                                                        
     221                                                                                                                                                                                                                      
    213222                if (answersDiv.lastAnswer.prev != null)
    214223                {
     
    218227                }
    219228            }
    220                                                                                                                                                                                                                            
     229                                                                                                                                                                                                                                           
    221230            function minMax(questionNumber, min, max)
    222231            {
     
    225234                if (max == null)
    226235                    var max = '';
    227                                                                                        
     236                                                                                                       
    228237                var answersDiv = document.getElementById("answersDiv" + questionNumber);
    229                                                                                                                                                                                                                                
     238                                                                                                                                                                                                                                              
    230239                var answerDiv = document.createElement("div");
    231                                                                                                                                                                                                
     240                                                                                                                                                                                                               
    232241                answerDiv.className = "answerDiv";
    233242                answerDiv.innerHTML = "<label for='min'>Min</label><input type='text' value='" + min + "' name='q" + questionNumber + "ans1' />" +
    234243                    "<label for='max'>Max</label><input type='text' value='" + max + "' name='q" + questionNumber + "ans2' />";
    235                                                                                                                                                                                                                            
     244                                                                                                                                                                                                                                          
    236245                answersDiv.appendChild(answerDiv);
    237246            } 
    238                                                                                                                                                                                                                            
     247                                                                                                                                                                                                                                           
    239248            function minMaxIncr(questionNumber, left, right, incr)
    240249            {
     
    245254                if (incr == null)
    246255                    var incr = '';
    247                                        
     256                                                       
    248257                var answersDiv = document.getElementById("answersDiv" + questionNumber);
    249                                                                                                                                                                                                                                
     258                                                                                                                                                                                                                                              
    250259                var answerDiv = document.createElement("div");
    251260                answerDiv.className = "answerDiv";
     
    254263                    "<label>Scale count</label><input type='text' value='" + incr + "' name='q" + questionNumber + "ans3' />" +
    255264                    "<div id='inputCheckFeedback'" + questionNumber + "";
    256                                                                                                                                                                                                                            
     265                                                                                                                                                                                                                                          
    257266                answersDiv.appendChild(answerDiv);
    258267            }         
    259                                                                                                                                                                                                                                                                                  
    260                                                                                                                                                                                                                                                                                          
     268                                                                                                                                                                                                                                                                                                
     269                                                                                                                                                                                                                                                                                                        
    261270            function addQuestion(title, description)
    262271            {
    263272                var questionsDiv = document.getElementById('questionsDiv');
    264273                var newQuestion = getNewQuestion(title, description);
    265                                                                                                                                                                                                                        
     274                                                                                                                                                                                                                                       
    266275
    267276                newQuestion.prev = document.lastQuestion;
     
    271280                questionCount++;
    272281            }
    273                                                                                                                                                                                                                    
     282                                                                                                                                                                                                                                   
    274283            function removeLastQuestion()
    275284            {
    276285                var questionsDiv = document.getElementById('questionsDiv');
    277                                                                                                                                                                                                                        
     286                                                                                                                                                                                                                                       
    278287                if (document.lastQuestion.prev != null)
    279288                {
     
    287296                }               
    288297            }
    289                                                                                                                                                                                              
     298                                                                                                                                                                                                            
    290299            function save(surveyID)
    291300            {
     
    293302                var questionsDiv = document.getElementById('questionsDiv');
    294303                form.action = "surveycreation.php";
    295                                                                                                                                                                
     304                                                                                                                                                                               
    296305                /* extra time stamp */
    297306                var date = new Date();
     
    304313                timeStampInput.value = timeStamp;
    305314                timeStampInput.type = "hidden";
    306                                                                                                                    
     315                                                                                                                                   
    307316                var surveyIDInput = document.createElement("input");
    308317                surveyIDInput.name = "surveyID";
    309318                surveyIDInput.value = surveyID;
    310319                surveyIDInput.type = "hidden";
    311                                                                                                                                              
     320                                                                                                                                                            
    312321                questionsDiv.appendChild(timeStampInput);
    313322                questionsDiv.appendChild(surveyIDInput);
    314323                form.submit();
    315324            }
    316                                                                                                                                                                                                                            
    317                                                                                                                                                                                                                                                                                                                                                                                                            
     325                                                                                                                                                                                                                                           
     326                                                                                                                                                                                                                                                                                                                                                                                                                           
    318327        </script>
    319328        <?php
     
    370379            foreach ($this->survey->questions as $numQ => $question) {
    371380                ?>
    372                 <script type="text/javascript">
    373                     var questionIDInput = document.createElement("input");
    374                     questionIDInput.name = "questionID<?php echo $numQ; ?>";
    375                     questionIDInput.value = "<?php echo $question->id; ?>";
    376                     questionIDInput.type = "hidden";
    377                                                                                                                                                      
    378                     document.getElementById("questionsDiv").appendChild(questionIDInput);
    379                                  
    380                                                            
     381                <script type="text/javascript">
    381382                    var answers = new Array();
    382383                <?php
     
    386387                }
    387388                ?>
    388                                                                    
     389                                                                                                   
    389390                    addQuestion('<?php echo $question->title; ?>', '<?php echo $question->description; ?>');
    390                                                                                                                                                                    
     391                                                                                                                                                                                                   
    391392                    var select = document.getElementById('<?php echo $numQ; ?>');
    392393                    var type = '<?php echo $question->type; ?>';
     
    399400                            break;
    400401                        }
    401                     }                                                                                                                   
     402                    }     
     403                                   
     404                                   
     405                    /* questionID stuff */
     406                    var questionIDInput = document.createElement("input");
     407                    questionIDInput.id = "questionID<?php echo $numQ; ?>";
     408                    questionIDInput.name = "questionID<?php echo $numQ; ?>";
     409                    questionIDInput.value = "<?php echo $question->id; ?>";
     410                    questionIDInput.type = "hidden";
     411                                                                                                                                                                                     
     412                    document.getElementById("questionsDiv").appendChild(questionIDInput);
    402413
    403414                </script>
  • Dev/trunk/css/style.css

    r29 r36  
    6161/* ##################################################################
    6262   ===================== STYLESHEET OF GLORY ======================== */
    63 
    64 #newSurveyButton{
    65     height: 3em;
    66     width: 10em;
    67 }
    6863
    6964#surveyCreation {
     
    155150}
    156151
     152.bigSurveyButton {
     153    margin-top: 1px;
     154    height: 3em;
     155    width: 12em;
     156}
     157
    157158.surveyButton:hover {
    158159    background-color: white;
  • Dev/trunk/index.php

    r11 r36  
    1717            <div id="content">
    1818                <div id="menu">               
    19                     <?php new NewSurveyButton(); ?>
     19                    <?php
     20                    SurveyButton::newSurveyButton();
     21                    SurveyButton::loadSurveyButton();
     22                    ?>
    2023                </div>
    2124            </div>
  • Dev/trunk/surveycreation.php

    r35 r36  
    88    $timeStamp = $_POST['timeStamp'];
    99       
    10 //        echo 'This is what gets sent:';
    11 //      var_dump($_POST);
    12 //      echo '<br/><br/>';
     10        echo 'This is what gets sent:';
     11        var_dump($_POST);
     12        echo '<br/><br/>';
    1313        $surveyDBI =  new SurveyDatabaseInterface();
    1414        $surveyDBI->setSurveyInfo($_POST);
    1515        $info = $surveyDBI->getSurveyInfo();
    16 //      echo '<br/><br/>';
    17 //        echo 'This is what I get back:';
    18 //      var_dump($info);
     16        echo '<br/><br/>';
     17        echo 'This is what I get back:';
     18        var_dump($info);
    1919       
    2020        $savedSurvey = Survey::getSurvey($info);
Note: See TracChangeset for help on using the changeset viewer.