2009-12-15 6 views
0

모든,PHP 체크 박스 배열

양식이 게시됩니다 때, 나는 몇 가지 체크 박스 값을 아래처럼 얻을 :이 추천 배열로와 JSON 요청을 만들 수있는 방법, PHP를 사용

[chk0] => Array ( 
    [1] => on 
    [57] => on 
    [83] => on 
) 
[chk1] => Array ( 
    [69] => on 
    [71] => on 
) 
[chk1001] => on 
[chk1005] => on 
[chk1008] => on 

위의 변수를 사용합니까? 모든 체크 박스 앞에는 "chk"가 붙습니다. 체크 박스가 배열이고 값이 있으면 첫 번째 JSON 요청이 생성되어야합니다. 배열이 아닌 모든 객체에 대해서는 두 번째 객체를 생성해야합니다. 답에 대한

//JSON Request 1 
     "data1": 
      [ 
       { 
        "checkboxval": true, 
        "id": 1 
       }, 
       { 
        "checkboxval": true, 
        "id": 57 
       }, 
       { 
        "checkboxval": true, 
        "id": 83 
       }, 
       { 
        "checkboxval": true, 
        "id": 69 
       }, 
       { 
        "checkboxval": true, 
        "id": 71 
       } 
      ] 

//JSON Request 2: 
    "data2": 
     [ 
      { 
       "checkboxval": true, 
       "id": 1001 
      }, 
      { 
       "checkboxval": true, 
       "id": 1005 
      }, 
      { 
       "checkboxval": true, 
       "id": 1008 
      } 
     ] 

답변

5
$data = array(
    "data1" => array(), 
    "data2" => array(), 
); 
foreach($_POST as $key => $value) 
{ 
    if(preg_match('/^chk/',$key)) 
    { 
     if(is_array($value)) 
     { 
      foreach($value as $id => $on) 
       $data["data1"][] = array("checkboxval"=>true,"id"=>$id); 
     } 
     else 
      $data["data2"][] = array("checkboxval"=>true,"id"=>str_replace("chk","",$key)); 
    } 
} 
$json = json_encode($data); 
+0

감사합니다. 하지만 첫 번째 경우에는 효과가 있다고 생각하지 않습니다. – Jake

+0

좋은 지적. 수정을 위해 편집하겠습니다. – rossipedia