2008-11-18 11 views
6

CodeIgniter permet d'accéder aux données transmis via:obtenir des valeurs de poste lorsque la clé est inconnue dans CodeIgniter

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

où « nom_entrée » est le nom d'un champ de formulaire. Cela fonctionne bien pour une forme statique où chaque nom d'entrée est connu à l'avance.

Dans mon cas, je charge une collection de paires clé/valeur de la base de données. Le formulaire contient une entrée de texte pour chaque paire clé/valeur.

Je me demande, est-il un moyen d'obtenir un tableau de données publiées via l'API CodeIgniter?

Merci!

Répondre

9

Selon la documentation, pas. Je suggère simplement d'utiliser array_keys($_POST) pour obtenir les clés.

+0

simple et directe. J'aime ça. – GloryFish

1

Certes, si vous avez un tableau de clés de la base de données que vous pouvez l'utiliser, comme:

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

Ensuite, vous avez l'avantage que les gens si les gens soumettent des champs supplémentaires (par exemple en modifiant la forme et l'afficher eux-mêmes) ces champs seront ignorés

1
$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']); 
    } 

insert:

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

mise à jour:

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

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

qui peut être utilisé pour