2009-05-26 73 views
6

填充形式在控制器中,我有...笨从数据库

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()不读书$数据

搜索值= “”

http://codeigniter.com/forums/viewthread/103837/

海报只使用值“=”中“”之间的set_value()函数。

我想知道如何做同样的事情,但我无法得到它的工作。帮帮我?

+1

为什么要在控制器中取代数据? – eyelidlessness 2009-11-29 20:39:12

+3

,因为他(我们)可以......并且想要。 ;) – 2011-04-18 04:17:21

+0

不错的一个@StephenCox – 2014-01-24 07:46:21

回答

4

我认为你没有正确地将值传递给视图。

在控制器的说:

$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" /> 
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

21

SET_VALUE需要2个参数。字段名称和值。

您需要:

value="<?php echo set_value('username', $username); ?>" 

假设你正在传递$数据[ '用户名']等

1

SET_VALUE()的设计与CI表单验证工作。

第一次加载表单时,set_value()可以使用第二个参数填充默认值。表单提交后,您可以再次显示表单,并且该字段将填充提交的值,只要它被检查进行验证。

另请参见http://codeigniter.com/forums/viewthread/96617/ - 有几个set_value()错误,文档没有说明。

迄今为止适用于CI 1.7.3。

-1

尝试在控制器中为默认值分配$_POST变量,例如,$_POST['email'] = 'email';