codeigniter从数据库填充表单

时间:2009-05-26 13:49:42

标签: forms codeigniter

在控制器中,我有......

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()函数。

我想知道如何做同样的事,但我无法让它发挥作用。帮助

5 个答案:

答案 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';