Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausführing von functions in function

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausführing von functions in function

    Ich habe Funktionen für die Wiedergabe von verschiedenen Sorten Fragen geschrieben. Die Wiedergabe funktioniert problemlos. Nun will ich aber eine Funktion schreiben (q_questionnaire()) in der die anderen Funktionen aufgerufen werden. Ich dachte erst, dass einfach so zB schreiben kann:

    function q_questionnaire()
    { q_question_open ();
    usw
    }

    aber das funktioniert anscheinend nicht. Hab es jetzt so, dass die functions als einen string zurückgebe. Dann wird zumindest bei q_question_open() das textfeld wiedergegeben. Aber warum muss ich dann nochmal extra den $stam echoen, obwohl dieser schon in der ursprünglichen function von der Frage deklariert wurde.... verstehe gerade gar nichts mehr.
    Soweit, so gut, also q_question_open() functioniert, aber bei den anderen Fragen passiert überhaupt nichts, da wird noch nicht einmal die Fragestellung ($stam) wiedergegeben.
    Hoffe jemand kan mir erklären, warum dass so nicht funktioniert und vielleicht Ideen geben, wie man es anders machen könnte!!!!

    fatsurfer

    ach ja, hier der php-code (im ersten Teil stehen die functions für die verschiedenen Fragen und dahinter die function zur Wiedergabe vom Fragebogen)

    PHP-Code:
    <?php
     
    // generates html for open question
    function q_question_open(
    $name,
    $stam
    $value False 
    )
    {
        
    $r htmlspecialchars($stam)."<br />\n";
        
    $r .= "<input type=\"text\" size=\"50\" ".
        
    "name=\"$name\" value=\"".htmlspecialchars($value)."\" />\n";
        return 
    $r;
    }
    // generates html for multiple choice question with one possible answer
    function q_question_mc_one(
    $name,
    $stam
    $options
    $value False 
    )
    {
        
    $r htmlspecialchars($stam)."\n";
        foreach(
    $options as $option)
        {
            
    $r .= "<br /><input type=\"radio\" name=\"$name\" value=\"".++$count."\" ";
            if (
    $count == $value)
            {
                
    $r .= "checked=\"checked\" ";
            }
            
    $r .= "/>$option\n";
        }
        return 
    $r;
    }
    // generates html for multiple choice question with one or more possible answers
    function q_question_mc_multiple(
    $name,
    $stam
    $options
    $values False 
    )
    {
        
    $r htmlspecialchars($stam)."\n";
        foreach(
    $options as $option)
        {
            
    $r .= "<br /><input type=\"checkbox\" name=\"{$name}[]\" value=\"".++$count."\" ";
            if (
    is_array($values) AND in_array($count$values))
            {
                
    $r .= "checked=\"checked\" ";
            }
            
    $r .= "/>$option\n";
        }
        return 
    $r;
    }
    // generates html for likert scale question
    function q_question_likert(
    $name,
    $stam
    $length
    $lowest
    $highest
    $value False 
    )
    {
        
    $r htmlspecialchars($stam)."<br />\n".$lowest."\n";
        for (
    $l 1$l <= $length$l++)
        {
            
    $r .= "<input type=\"radio\" name=\"$name\" value=\"$l\" ";
            if (
    $l == $value)
            {
                
    $r .= "checked=\"checked\" ";
            }
            
    $r .= "/>$l\n";
        }
        
    $r .= "$highest\n";
        return 
    $r;
    }
    // generates html for questionnaire form
    function q_questionnaire(
    $questions,
    $answers False,
    $submit_value 'opslaan'
    )
    {
     
    ?>  
    <form action="qtest2.php" method="post" >
    <?php
    foreach($questions as $test_questions => $attributes)
      {
              if (
    $attributes['type'] == 'open' )
            {
              
    $r q_question_open($name,$stam,$value False); 
       foreach(
    $attributes as $attributename => $attributevalue
              {
                if (
    $attributename == 'stam')
                {        
     
      echo 
    "$attributevalue";             
         }
     
       }        
             }
               return 
    $r;
     
            if (
    $attributes['type'] == 'mc_one' )
     {
       
    $r q_question_mc_one($name,$stam,$options,$value False );
     
       foreach(
    $attributes as $attributename => $attributevalue
              {
                if (
    $attributename == 'stam')
                {        
     
      echo 
    "$attributevalue";             
         }
       }
     }       
     
              return 
    $r;
     
     
            if (
    $attributes['type'] == 'mc_multiple' 
     {
              
    $r q_question_mc_multiple($name,$stam,$options,$values False ); 
       foreach(
    $attributes as $attributename => $attributevalue
              {
                if (
    $attributename == 'stam')
                {        
     
      echo 
    "$attributevalue";             
         }
       } 
     }
     
                return 
    $r;
     
     
            if (
    $attributes['type'] == 'likert' 
     {
              
    $r q_question_likert($name,$stam,$length,$lowest,$highest,$value False ); 
       foreach(
    $attributes as $attributename => $attributevalue
              {
                if (
    $attributename == 'stam')
                {        
     
      echo 
    "$attributevalue";             
         }
        }
            }
     
        return 
    $r;    
      }  
     
     
     
    ?>
    <input type="submit" value="opslaan" />
    </form>
    <?php
    }
    ?>

  • #2
    aber das funktioniert anscheinend nicht
    1. was funktioniert nicht? fehlermeldungen?
    2. warum sollte das nicht funktionieren?

    Kommentar


    • #3
      es gibt keine fehlermeldungen. Nur wird auf der testseite (qtest2.php) nichts wiedergegeben..funktioniert nur für q_question_open, aber nicht für den rest...

      Kommentar


      • #4
        Erstens hast du mal die Forumsregeln nicht beachtet und kein error_reporting(E_ALL) gesetzt. Sonst hättest du haufenweise Fehlermeldungen über nicht definierte Variablen.
        Du rufst
        PHP-Code:
        q_question_open($name$stam$value False); 
        auf, alle Variablen sind undefiniert. Wozu übrigens der dritte (bzw letzte) Parameter dienen soll (der immer false ist), weiss ich auch nicht.
        Gruss
        L

        Kommentar


        • #5
          - Code ordentlich formatieren, vorher such hier niemand Syntaxfehler!
          - Danach (!): Frage präzise stellen
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar

          Lädt...
          X