0

我使用 JSON 创建了一个多维数组。现在我的问题是如何制作复选框组(放入表格或任何可以将它们分开的东西,例如通过水平条)。

这是文件行的示例:

{"id": "v0", "namegroup": "Table rules create OR insert", "rule": "All classes give origin to a table.", "value": 0}

这就是我创建数组的方式:

<?php 
$file = fopen("rules.txt", "r") or exit("Unable to open file!"); 
$arrayRules = array();
$i = 0;
while(!feof($file))
{
    $line = fgets($file);
    $content = json_decode(utf8_encode($line), true);
    $arrayRules[$i]['id'] = $content["id"];
    $arrayRules[$i][0] = utf8_decode($content["rule"]);
    $arrayRules[$i]['namegroup'] = $content["namegroup"];
    $arrayRules[$i][1] = $content["value"];
    $i = $i + 1;
}
fclose($file);
?>

这就是我创建复选框的方式:

echo "<input name=\"regra[]\"  value=\"" . $arrayRules[$i]["id"] . "\" type=\"checkbox\"  /> " . $arrayRules[$i][0] . "<br/> "  ;

请记住,用户可以编辑组的名称和所有其他点。如您所见,我的问题不是如何回显复选框,而是如何按组创建和组织复选框的机制。

更新1

现在我有这个:

for($i=0; $i < count($arrayRules); $i++)
{
    if ($arrayRules[$i]['idgroup'] == 1)
    {
        if  ($arrayRules[$i][1] == 1)
            echo  "<input name=\"regra[]\"  value=\"" . $arrayRules[$i]["id"] . "\" type=\"checkbox\" checked onclick=\"this.checked='checked'\"/> " . $arrayRules[$i][0] . "<br/> "  ;

        if ($arrayRules[$i][1] == 0)
            echo "<input name=\"regra[]\"  value=\"" . $arrayRules[$i]["id"] . "\" type=\"checkbox\"  /> " . $arrayRules[$i][0] . "<br/> "  ;
    }
}
?>

问题是 inif ($arrayRules[$i]['idgroup'] == 1)不应该是 1 而是应该是一个变量,或者当它每次在 idgroup 上的文件中找到一个新的或不同的名称时,它会添加或创建一个新的表/复选框组。

4

1 回答 1

0

将 group_id 参数添加到您的 json 对象并像

 $arrayRules[$group_id][$i]

之后,您可以执行以下操作:

foreach($arrayRules as $group_id=>$objects) {
   // start group html
   foreach($objects as $i=>$params) {
       echo "<input name=\"regra[]\"  value=\"" . $params[$i]["id"] . "\" type=\"checkbox\"  /> " . $params[$i][0] . "<br/> "  ;
   }
   // end group html
}
于 2012-05-30T14:50:59.243 回答