2012-10-01 3 views
0

J'utilise un point de vue pour l'ajout/modification de données DB:Codeigniter Modifier POST

<input name="blah" id="blah" value="<? set_selected('blah')?> /> 

Dans mon contrôleur pour modifier ce que je fais:

$_POST['blah'] = 'DB value'; 
$this->load->view('...'); 

Mais le champ de saisie est vide. Je veux que les entrées soient préremplies pour mon cas d'édition.

Répondre

2

Vues CI peut prendre un tableau de données comme second paramètre que d'autres l'ont mentionné.

http://codeigniter.com/user_guide/general/views.html

Je n'aime pas l'idée de tableau $ _POST et en passant ensuite que votre tableau de données. $ _POST devrait juste être utilisé pour les valeurs passées depuis le formulaire d'interface utilisateur. Puisque vous auriez à définir manuellement votre tableau $ _POST de toute façon, vous pourriez aussi bien utiliser un objet tableau séparé. Je voudrais créer un tableau avec toutes vos valeurs définies. c'est-à-dire tableau ('blah' => $ dbvalue); et passez cela à la place d'un tableau $ _POST pré-rempli. Deuxièmement, votre exemple de code utilise 'set_selected()'. La fonction est 'set_select()' et est destinée à une balise d'option. Il y a donc deux problèmes avec cette ligne de code. Il doit être soit

<input .... value="set_value('blah')" /> 

ou

<option ....value="v1" "set_select('blah', 'v1')"> 
+0

Oui, une faute de frappe. Je souhaite que CRUD puisse être moins verbeux dans les frameworks web. – Exegesis

+0

Pour les sites simples, oui, CRUD serait bien s'il était moins verbeux. J'ai fait une combinaison de créer ma propre classe de modèle CI en conjonction avec un peu de réflexion pour le rendre plus facile et moins verbeux. – dispake

1

Vous devez passer $ _POST pour afficher, les données affichées doivent passer du contrôleur à la vue dans le deuxième paramètre de la fonction de chargement de vue. essayer cette

$this->load->view('content', $_POST); 
1

Tout ce que vous passez à la vue se transformer en une variable réelle. Donc, votre code serait.

<input name="blah" id="blah" value="<?php echo $blah; ?> /> 
$_POST['blah'] = 'DB value'; 
$this->load->view('...', $_POST); 
+0

print $ bla mais oui – qwertzman

Questions connexes