因此,我尝试使用外部json文件作为数据进行测验,我想将我的json文件中的每个选项都放入,然后将它们作为php单选按钮放到我的html上。但是,什么都没有发生。有任何建议/解决方案吗?
Php代码
<?php
$json_var = file_get_contents("template.json");
$json_var = json_decode($json_var, true);
foreach($json_var as $value)
{
if($value["name"]=="counting animals"){
printf('<img src="'.$value["data"].'" />');
foreach($value["choices"] as $val){
printf("<form id=\"form1\">");
printf(" <form name=\"image-pick\" value=\".$val[0].\" type=\"radio\" id=\"one\" >" );
printf(" <label></label>");
printf("</form>");
}
}
}
?>
Json代码
[
{
"name": "counting animals",
"template": "counting",
"data": "Images/5cats.jpg",
"choices": [
2,
5,
6,
8
],
"correctAnswer": 1
}
]
答案 0 :(得分:0)
尝试一下。
foreach($json_var as $value)
{
if($value["name"]=="counting animals"){
printf('<img src="'.$value["data"].'" />');
foreach($value["choices"] as $val){
printf("<form id=\"form1\">");
printf(" <input name=\"image-pick\" value=$val type=\"radio\" id=\"one\" >" );
printf(" <label></label>");
printf("</form>");
}
答案 1 :(得分:0)
您将为每次迭代创建一个<form>
,并将type="radio"
添加到表单标签。您应该在foreach循环之外创建form标记。
我认为您正在寻找<input type="radio">
之类的input元素,并且应确保不要在循环中重复ID。
可以使用例如id=\"one-$val\"
foreach ($json_var as $value) {
if ($value["name"] === "counting animals") {
printf('<img src="' . $value["data"] . '" />');
printf("<form id=\"form1\">");
foreach ($value["choices"] as $val) {
printf("<input name=\"image-pick\" value=$val type=\"radio\" id=\"one-$val\" >" );
printf("<label></label>");
}
printf("</form>");
}
}