在控制器中,我有......
function update($id = null)
{
$this->load->database();
// more code
$data = array();
$data = $this->db->get_where(
'users',
array(
'id' => $id
)
);
$data = $data->result_array();
$data = $data[0];
// more code
$this->load->view('update', $data);
}
在视图中,我有......
<h5>Username</h5>
<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />
<h5>Email</h5>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
<h5>Email Confirmation</h5>
<input type="text" name="emailconf" value="<?php echo set_value('emailconf'); ?>" size="50" />
<h5>Password</h5>
<input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />
<h5>Password Confirmation</h5>
<input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />
set_value()没有读取$ data
搜索value =“”
在http://codeigniter.com/forums/viewthread/103837/
海报仅使用值“=”中的“”之间的set_value()函数。
我想知道如何做同样的事,但我无法让它发挥作用。帮助
答案 0 :(得分:21)
set_value需要2个参数。字段名称和值。
你需要:
value="<?php echo set_value('username', $username); ?>"
假设您传递$ data ['username']等。
答案 1 :(得分:4)
我认为您没有正确地将值传递给视图。
在Controller中:
$data = $this->db->get_where(
'users',
array(
'id' => $id
)
);
$data = $data->result_array();
$data['result'] = $data[0];
然后在视图中:
<h5>Password Confirmation</h5> <input type="text" name="passconf" value="<?php echo $result['passconf']; ?>" size="50" />
答案 2 :(得分:3)
试试这个:
控制器:
$data = array();
$data = $this->db->get_where(
'users',
array(
'id' => $id
)
);
$data = $data->result_array();
$data['view_username'] = $data['username'];
我没有使用$ date [0],而是使用列名,但这是你的决定
查看:
<h5>Username</h5> <input type="text" name="username" value="<?=$view_username?>" size="50"/>
<?= =>
是PHP短标签,请在codeigniter用户指南中阅读
此致
Sylvio
答案 3 :(得分:1)
set_value()旨在用于CI表单验证。
首次加载表单时,set_value()可以使用其第二个参数使用默认值填充该字段。提交表单后,您可以再次显示该表单,并且该字段将填充已提交的值,前提是已经过检查以进行验证。
另请参阅http://codeigniter.com/forums/viewthread/96617/ - 文档中没有说明有一些set_value()的问题。
到目前为止适用于CI 1.7.3。
答案 4 :(得分:-1)
尝试为控制器中的$_POST
变量指定默认值,例如$_POST['email'] = 'email';