CodeIgniter: использование массива в массиве - PullRequest
0 голосов
/ 18 декабря 2011

Я следую nettut + учебник для разбивки на страницы и для хранения входных данных POST в виде строк запросов в БД. Пока все работает нормально, пока, предположим, что если я получу массив в качестве входных данных POST, я не смогу пройти через него и получить все значения массива и сохранить в query_array (т.е. сохранить массив в массиве).

Фрагменты ниже:

$query_array = array(
'gender' => $this->input->post('gender'),
'minage' => $this->input->post('minage'),
'maxage' => $this->input->post('maxage'),
'Citizenship' => $this->input->post('citizenship'), // checkboxes with name citizenship[]
);

Возвращает только последнее сохраненное значение массива в гражданстве.

Выходной массив:

Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 ) 

делает строку запроса такой:

&gender=1&minage=18&maxage=24&Citizenship=2

Но мое требование - получить все значения массива Citizenship вместо последнего сохраненного значения.

Вывод, необходимый для создания строки запроса:

Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 [Citizenship] => 4 [Citizenship] => 6 ) 

Строка запроса:

&gender=1&minage=18&maxage=24&Citizenship[]=2&Citizenship[]=4&Citizenship[]=6

Любая помощь приветствуется ..

Спасибо.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2011

Я исправил это сам.Я только что перебрал массив POST и получил значения ключа и пары отдельных массивов.

foreach($_POST['Citizenship'] as $k => $v) {
    $Citizenship[$v] = $v;
}

Надеюсь, это поможет кому-то, кто столкнулся с подобной проблемой.

0 голосов
/ 18 декабря 2011

Не похоже, что средство игнорирования кода поддерживает безымянные многомерные массивы в качестве входных данных без небольшого взлома.

Если вы можете получить доступ к необработанным данным $ _POST, попробуйте заменить

$this->input->post('citizenship')

с

array_map('intval',$_POST['citizenship'])

Альтернативно добавьте ключи к вашим данным:

&gender=1&minage=18&maxage=24&Citizenship[0]=2&Citizenship[1]=4&Citizenship[2]=6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...