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)
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
}
?>
Kommentar