Получить значения сообщений, когда ключ неизвестен в CodeIgniter

CodeIgniter позволяет получить доступ к POST-данным через:

$this->input->post('input_name');

где input_name — имя поля формы. Это хорошо работает для статической формы, где каждое входное имя известно заранее.

В моем случае я загружаю набор пар ключ/значение из базы данных. Форма содержит ввод текста для каждой пары ключ/значение.

Мне интересно, есть ли способ получить массив опубликованных данных через API CodeIgniter?

Спасибо!


person GloryFish    schedule 18.11.2008    source источник


Ответы (4)


Согласно документации, нет. Я бы предложил просто использовать array_keys($_POST) для получения ключей.

person Paige Ruten    schedule 18.11.2008
comment
Просто и понятно. Мне это нравится. - person GloryFish; 18.11.2008

foreach($this->input->post() as $key => $val)  {  echo "<p>Key: ".$key. " Value:" . $val . "</p>\n";  } 

который можно использовать для

person Harpreet Bhatia    schedule 05.05.2011

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

foreach ($arrayFromDb as $key => $value) {
    $newValue = $this->input->post($key);
}

Тогда у вас есть то преимущество, что люди, если люди отправят дополнительные поля (например, изменив форму и опубликовав ее сами), эти поля будут проигнорированы.

person Tom Haigh    schedule 18.11.2008

$array_db_columns = $this->db->query('SHOW COLUMNS FROM ci_props');
    $array_db_columns = $array_db_columns->result_array();
    $array_save_values = array();
    foreach ( $array_db_columns as $value )
    {
        $array_save_values[$value['Field']] = $this->input->post($value['Field']);
    }

вставлять :

$this->db->insert('props', $array_save_values);

Обновить :

$this->db->where('id',$id); $this->db->update('props',$array_save_values);

person Poelinca Dorin    schedule 03.07.2010