用PHP调用外部json文件到单选按钮

时间:2018-11-21 15:21:45

标签: php json

因此,我尝试使用外部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
 }
]

2 个答案:

答案 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>");
    }
}