CodeIgniter : 如何在编辑页面上设置值

CodeIgniter : How to set a value on the edit page

提问人:sepuluh10 提问时间:9/26/2014 更新时间:9/26/2014 访问量:1602

问:

我想制作一个编辑表单,但是在显示数据时遇到了问题。这是我代码中的警告.

遇到 PHP 错误

严重性:通知

消息:未定义的索引:pakar_username

文件名: m_pakar/edit_pakar.php

行号:20

这是我的观点:

<form method="post" role="form" action="<?=base_url()?>admin/m_pakar/edit_pakar?>">
  <label>Username</label>
    <input class="form-control" type="username" name="username" value="<?php echo $coba['pakar_username']?>" ><br>
  <label>Password</label>
    <input class="form-control" type="text" name="password" value="<?php echo $coba['pakar_password']?>"><br>
  <label>Email</label>
    <input class="form-control" type="email" name="email" value="<?php echo $coba['pakar_email']?>" ><br>
  <button type="submit" class="btn btn-success">Update</button>
</form>

我的控制器:

public function edit_pakar($id){

    $this->general->set_table('data_pakar');
    $this->general->order('pakar_id', 'asc');

    $datasend['coba'] = $this->general->get_result_array();

    $datasave = array(
            'pakar_username' => $this->input->post('username', TRUE),
            'pakar_password' => md5($this->input->post('password', TRUE)),
            'pakar_email' => $this->input->post('email', TRUE),
    );

    $this->general->set_table('data_pakar');
    $this->general->where($datasave);

    $this->general->update($datasave);
    $dataview['content'] = $this->load->view('admin/m_pakar/edit_pakar', $datasend, TRUE);
    $this->load->view($this->template, $dataview);

}

我的代码有问题吗?不仅pakar_username,而且编辑表单上的所有现有数据都不会显示。

PHP 表单 codeigniter undefined-index

评论

0赞 Sam Dufel 9/26/2014
是某种自定义数据库库吗?general
0赞 PinoyPal 9/26/2014
你能给我们看一下这个函数背后的代码吗?$this->general->get_result_array();
0赞 sepuluh10 10/1/2014
@PinoyPal这是我的函数:我的代码没有问题吗?public function get_result_array() { $get = $this->db->get($this->tbname); if($get->num_rows() > 0) { return $get->result_array(); } else { return false; } }
0赞 PinoyPal 10/1/2014
由于您使用的将返回一个记录数组而不是单行,因此您应该将其更改为可以使用,否则您将不得不使用 where 表示数组的索引。return $get->result_array()return $get->row_array()$coba['pakar_username']$coba[n]['pakar_username']n

答:

0赞 James Lalor 9/26/2014 #1

为什么你的控制器中有所有这些臃肿的代码?将数据库内容移动到模型...

HTML 表单修复:

<form method="post" role="form" action="<?=base_url()?>admin/m_pakar/edit_pakar">

其次,您没有将“datasave”中的详细信息推送到视图,而只是推送“datasend”,因此我调整了“coba2”,以防您需要coba...

$datasend['coba'] = $this->general->get_result_array();

$datasave = array(
        'pakar_username' => $this->input->post('username', TRUE),
        'pakar_password' => md5($this->input->post('password', TRUE)),
        'pakar_email' => $this->input->post('email', TRUE),
);

$datasend['coba2'] = $datasave;

现在编辑输入字段,如下所示:

value="<?php echo $coba2['pakar_username']?>"

评论

0赞 sepuluh10 10/1/2014
感谢您的回答,但是此代码在我的网络中不起作用。我在“输入字段”中遇到了问题。
0赞 James Lalor 10/1/2014
给我一个机会,我会再看一遍,然后回复你。
0赞 sepuluh10 10/1/2014
谢谢之前..我想编辑数据,但是当我选择数据时。空白(不显示任何内容),这有什么问题吗?value="<?php echo $coba2['pakar_username']?>"