2013-05-20 149 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

相關問題