2012-05-30 11 views
0

我使用JSON創建了一個多維數組。現在我的問題是如何使複選框組(表格或任何可以分離它們的任何東西,例如水平條)。在複選框中顯示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/> " ; 

請記住,用戶可以編輯組的名稱和所有其他點。 正如你可以注意到的,我的問題不是如何回顯複選框,但是如何創建和組織複選框。

UPDATE1

現在我有這樣的:

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/> " ; 
    } 
} 
?> 

的問題是,在if ($arrayRules[$i]['idgroup'] == 1)不應該是1,但應該是一個變量或東西的時候,每次發現一個新的或者是它添加的idgroup文件中的不同名稱或創建新的表格/複選框組。

回答

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 
} 
+0

我想我需要答案是比這更基本的,只是看我在UPDATE1的帖子中發表了評論,我有三個像這樣的「for」,而在他們的midle中,我有一個單槓。我真正需要的是一種機制,可以在出現新的組名時創建複選框的分隔。 – MichaelS