美好的一天。我是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。
答案 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();
}