在codeigniter中传递form_open()中的变量

时间:2014-07-04 07:26:45

标签: php html codeigniter

美好的一天。我是codeigniter的新手,我正在尝试将变量从一个view页面传递到另一个页面。但是我得到了错误,经过大量的尝试仍然无法弄明白。

这是Model代码:

function get_post($postID){
    $this->db->select()->from('khanposts')->where(array('post_id'=>$postID))->order_by('fullname', 'desc');
    $query=$this->db->get();
    return $query->result_array();
}

function update_post($postID, $data)
{
    $this->where('post_id', $postID);
    $this->db->update('khanposts', $data);
}

这是Controller代码:

function editpost($postID)
{
    $data['success']=0;
    if($_POST){
        $data_post=array(
            'fullname'=>$_POST['fullname'],
            'dob'=>$_POST['dob'],
            'blood'=>$_POST['blood'],
            'village'=>$_POST['village'],
            'occupation'=>$_POST['occupation'],
            'company'=>$_POST['company'],
            'email'=>$_POST['email'],
            'contact'=>$_POST['contact'],
            'password'=>$_POST['pass'],
            'marry'=>$_POST['marry']);
        $this->khanpost->update_post($postID, $data);
        $data['success']=1;
    }
    $data['post']=$this->khanpost->get_post($postID);
    $this->load->view('edit_post', $data);
}

这是View页面的代码,将值传递给edit_post查看页面:

foreach ($posts as $row){
<tr><td><a href="' .base_url(). 'khanposts/editpost/' .$row['post_id']. '" target="_blank"><i>Edit</i></a></td></tr>';
}

这是edit_post查看页面的代码,其中必须获取$row['post_id']的值:

echo form_open(base_url().'khanposts/editpost/'.$row['post_id']);
echo '<b>Full Name: </b>';
$data_form=array('name'=>'fullname', 'size'=>30, 'id'=>'fullname', 'class'=>'inputstyle', 'value'=>$row['fullname'] );
echo form_input($data_form);

如何在$row['post_id']中分配传递的变量(form_open())?任何解决方案都会非常有用。 TNX。

1 个答案:

答案 0 :(得分:3)

据我了解这个问题;

通过PostID查看editpost功能:

function editpost($postID)
{
   ...
   $data['postID'] = $postID;
}

view页面中获取,如:

echo form_open(base_url('khanposts/editpost/'.$postID));

您应该加载form帮助程序:

$this->load->helper('form');

您的data_form输入:

$data_form = array('name'=>'fullname', 'size'=>30, 'id'=>'fullname', 'class'=>'inputstyle', 'value' => $post['fullname']);

您应该使用row_array代替result_array,因为您会获得单一帖子。

function get_post($postID)
{
    $this->db->select()->from('khanposts')->where(array('post_id'=>$postID))->order_by('fullname', 'desc');
    $query=$this->db->get();
    return $query->row_array();
}