我想将变量从codeigniter中的一个函数传递给另一个共享同一个类的函数。他们是形式的一部分。
class C_Reservation extends CI_Controller {
private $params = array();
private $post;
public function index()
{
$this->params['post'] = array(
'name' => '',
'last_name'=>''
);
$this->load->view('common/default_header',$this->params);
$this->load->view('reservation/index',$this->params);
$this->load->view('common/default_footer');
}
public function add(){
$error =false;
$error_list =array();
session_start();
$this->load->library('InputProcess');
$this->load->library('session');
if($this->input->server('REQUEST_METHOD')!="POST"){
show_404("Formularz dodawania obiektu - brak danych POST");
}
//filtrowanie danych
$this->post=array(
'name'=>$this->input->post('name'),
'last_name'=>$this->input->post('last_name')
);
echo $this->post['name']; // this place is showing name from form
$this->load->view('common/default_header',$this->params);
$this->load->view('reservation/complete',$this->params);
$this->load->view('common/default_footer');
}
public function export_pdf(){
session_start();
$html=$this->load->view('pdf/index', $this->post,false);
$this->load->library('m_pdf');
$pdf = $this->m_pdf->load();
$pdf->WriteHTML($html);
$pdf->Output();
}
}
添加函数未完成它只需要“保存”我可以从函数export_pdf访问它的变量 有谁?
答案 0 :(得分:0)
如果您没有同时调用这两个函数,则必须在cookie / session中存储值,然后只有一个可以从一个方法获取值到另一个方法。记住HTTP是无状态状态。
其他明智的简单$ this-> export_pdf($ f_name,$ l_name); 使用函数export_pdf($ f_name,$ l_name){....}检索它 或者在你的情况下$ this-> export_pdf();和函数export_pdf(){$ f_name = $ this-> post ['f_name']; $ l_name = $这 - >交[ 'l_name'];}
答案 1 :(得分:0)
你的问题有点令人困惑。原因令人困惑是因为您没有解释应用程序如何流动的过程。考虑到所有评论,我相信流程是这样的:
当用户向系统添加预订时:
add()
函数export_pdf()
以创建pdf 如果以上是您想要的流量,则问题在于您的add()
和export_pdf()
功能。该函数需要确保调用export_pdf()
,并且export_pdf()
需要返回数据,但目前没有任何函数正在运行该函数。
我会重写这两个函数:
public function add(){
$error = false;
$error_list = array();
session_start();
$this->load->library('InputProcess');
$this->load->library('session');
if($this->input->server('REQUEST_METHOD')!="POST"){
show_404("Formularz dodawania obiektu - brak danych POST");
}
//filtrowanie danych
$this->post = $this->input->post();
if ($this->post['user_needs_pdf'] == TRUE) {
$this->export_pdf();
} else {
$this->load->view('common/default_header',$this->params);
$this->load->view('reservation/complete',$this->params);
$this->load->view('common/default_footer');
}
}
public function export_pdf(){
$html = $this->load->view('pdf/index', $this->post, false);
$this->load->library('m_pdf');
$pdf = $this->m_pdf->load();
$pdf->WriteHTML($html);
$pdf->Output();
}