如何使用PHP创建测验?
当我执行代码以获取在php测验中显示问题和答案的字符串时,会出现一些错误。如何使用PHP创建测验?,php,html,Php,Html,当我执行代码以获取在php测验中显示问题和答案的字符串时,会出现一些错误。 com/ZCy6G.jpg您看到的错误与数组到字符串的转换有关,这是由此行引起的: echo $key . " : " . $value . "<br>"; echo$key。" : " . $价值“”; 如果在该循环中使用var_dump($value),您将看到$value有时是数组,而不是字符串。您可以像这样迭代$value数组中的值: foreach($quizHistoryQ[$keys[$i]
com/ZCy6G.jpg您看到的错误与数组到字符串的转换有关,这是由此行引起的:
echo $key . " : " . $value . "<br>";
echo$key。" : " . $价值“
”;
如果在该循环中使用var_dump($value),您将看到$value有时是数组,而不是字符串。您可以像这样迭代$value数组中的值:
foreach($quizHistoryQ[$keys[$i]] as $key => $value) {
echo $key . " : ";
//note: in OP's specific example, only is_array test is needed. is_object test can be omitted in this case since we know $value will never be an object
if (is_array($value) || is_object($value)) {
foreach($value as $item) {
echo $item . '<br />';
}
} else {
echo $value . '<br />';
}
}
foreach($quizHistoryQ[$keys[$i]]作为$key=>$value){
echo$key.“:”;
//注意:在OP的特定示例中,只需要is_数组测试。在这种情况下,is_对象测试可以省略,因为我们知道$value永远不会是对象
if(is_数组($value)| is_对象($value)){
foreach(价值为$item){
回显$item.“
”;
}
}否则{
回显$value.“
”;
}
}
这将测试$value是数组还是字符串。如果它是一个数组,它会在其中循环。否则,它只是回显字符串。我当前版本的php不支持数组文本构造函数的javascript样式,因此我必须使用原始样式。下面的代码具有最小的样式,但似乎正确地输出了问题和选项
<html>
<head>
<title>quiz</title>
<style>
form{ display:block; float:none; width:90%;margin:1rem auto;box-sizing:content-box;padding:1rem;border:1px solid black; }
ul{}
li{}
h3{margin:2remauto 1rem auto;}
</style>
</head>
<body>
<?php
$quizHistoryQ = array(
"Q1" => array(
"question"=>"This is the First question",
"options" => array(
"this is option 1",
"this is option 2",
"this is option 3"
),
"answer" =>2
),
"q2" => array(
"question"=>"This is the Question String for question 2",
"options" => array(
"this is option A",
"this is option B",
"this is option C"),
"answer" =>1
),
"q3" =>array(
"question"=>"This is the Question String for question 3",
"options" => array(
"this is option X",
"this is option Y",
"this is option Z"
),
"answer" =>0
)
);
echo "
<form name='quiz' method='post'>";
foreach( $quizHistoryQ as $index => $arr ){
$question=$arr['question'];
$options=$arr['options'];
$answer=$arr['answer'];
echo '<h3>Question: '.$index.': '.$question.'</h3>';
echo '<ul>';
foreach( $options as $i => $option ) echo "<li><input type='radio' name='{$index}[]' value='{$i}'/>{$option}";
echo '</ul>';
}
echo "
<input type='submit' name='sub' value='Submit'/>
</form>";
?>
</body>
</html>
测验
表单{显示:块;浮动:无;宽度:90%;边距:1rem自动;框大小:内容框;填充:1rem;边框:1px纯黑色;}
ul{}
li{}
h3{边距:2remauto 1rem auto;}
了解您收到的错误会很有帮助……那么,您想要什么呢?您应该考虑接受答案,以表明问题已经解决