我使用一种视图来添加/编辑数据库数据:
<input name="blah" id="blah" value="<? set_selected('blah')?> />
在我的编辑控制器中,我这样做:
$_POST['blah'] = 'DB value';
$this->load->view('...');
但是输入字段是空白的。我希望为我的编辑案例预先填充输入。
我使用一种视图来添加/编辑数据库数据:
<input name="blah" id="blah" value="<? set_selected('blah')?> />
在我的编辑控制器中,我这样做:
$_POST['blah'] = 'DB value';
$this->load->view('...');
但是输入字段是空白的。我希望为我的编辑案例预先填充输入。
正如其他人提到的那样,CI Views 可以将数据数组作为第二个参数。
http://codeigniter.com/user_guide/general/views.html
我不喜欢设置 $_POST 数组然后将其作为数据数组传递的想法。$_POST 应该只用于从 UI 表单传递的值。由于无论如何您都必须手动设置 $_POST 数组,因此您不妨使用单独的数组对象。我会创建一个包含所有设置值的数组。即数组('blah' => $dbvalue);并传递它而不是预先填充的 $_POST 数组。
其次,您的示例代码使用“set_selected()”。该函数是“set_select()”,用于选项标签。所以那行代码有两个问题。它需要要么是
<input .... value="set_value('blah')" />
或者
<option ....value="v1" "set_select('blah', 'v1')">
您需要将 $_POST 传递给视图,发布的数据应该从控制器传递到视图加载函数的第二个参数中的视图。试试这个
$this->load->view('content', $_POST);
你传递给视图的任何东西都会变成一个实际的变量。所以你的代码是。
<input name="blah" id="blah" value="<?php echo $blah; ?> />
$_POST['blah'] = 'DB value';
$this->load->view('...', $_POST);