2013-05-20 184 views
-2

我得到了需要使用enterie id的函数。通过id选择enterie,显示它并更新数据库中的行。 惯于复制了所有代码,只是主要的想法如何在其他函数中使用函数变量

控制器

function edit_advert() 
{ 
    $id = $this->uri->segment(3); //Here i get my enterie id 
    $this->load->model('model_adverts'); 
    $myadvert = $this->model_adverts->get_enterie($id); //passing id to model function 
//where i find enterie, select it from DB and pass it back to controller 
    //and then do if() stuff, where i give error message or pass returned enterie to 
//view and display it . 
} 

function update_enterie() //in view i got form with values from DB, after editing 
//fields, form submits to this function 
{ 
    do form validation stuff etc 
    And here i need to get $id again and pass it to model, so i can do query update 
    where $id = id 
} 

所以,我怎么能访问$ id变量来着?

+0

你有一个HTML形式的观点,即当您提交它,它会去update_enterie()? – galchen

+0

从经验,你们都在一个页面上的功能,变量$ id应该自动地在全球范围内使用......有人没有阅读PHP手册或实际上正确地搜索网站。 –

+0

如果要传递函数之间的id,请将其传递给函数调用,或将其设置为控制器对象的属性。 有点基本的PHP的东西 – Rooneyl

回答

-1

试试这个:

class abc{ 
    var $id;  
    function edit_advert() 
    { 
     $this->id = $this->uri->segment(3); //Here i get my enterie id 
     ..... 
    } 
    function update_enterie() 
    { 
     //use here $this->id; 
    } 
} 

如果您update_enterie()同时不叫,那么你应该使用“会话变量” 一样,

$this->session->set_userdata('my_id', 'value'); 

,并使用您希望。

更多http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

+0

更新将是一个单独的请求(表单提交),所以这是行不通的。 – Mischa

+1

你为什么要用这个会话?只需通过表单或网址传递ID ... – Mischa

相关问题