PHP Checkbox Array - PullRequest
       11

PHP Checkbox Array

0 голосов
/ 15 декабря 2009

All

Когда форма публикуется, я получаю некоторые значения флажков, как показано ниже:

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

Используя PHP, как я могу построить JSON-запрос с двумя массивами, подобными этим, используя вышеуказанные переменные? Все флажки имеют префикс "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
            }
        ]

1 Ответ

5 голосов
/ 15 декабря 2009
$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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...