2010-02-20 100 views
5

值!如何獲取表單輸入框的值笨表單輸入幫助

//這僅僅是一個$納米refrence和test_model $ FID //

$data['fid']['value'] = 0; 
    $data['nm'] = array('name'=>'fname', 
         'id'=>'id'); 

說,我有一個form_view與

<?=form_label('Insert Your Name :')?> 
<?=form_input($nm)?> 

和一個函數來獲取單列

function get($id){ 
    $query = $this->db->getwhere('test',array('id'=>$id)); 
    return $query->row_array(); 
} 

然後在控制器中..索引($ id = 0)

,並在某處指數

if((int)$id > 0) 
     { 
      $q = $this->test_model->get($id); 
      $data['fid']['value'] = $q['id']; 
      $data['nm']['value'] = $q['name']; 
     } 

和MySQL表有類似1.勝利者,2可見等作爲名稱值

但在這裏它不是從form_input取的名字和id的值和沒有再次顯示在form_view在同樣的輸入框作爲勝利者等更新,並將其發回到數據庫...

任何人請幫助! 並請容易,因爲我是新來的CI!

回答

5

根據我對第一個答案的評論,下面是一個Controller,Model和View的示例,用於更新從數據庫中的表中拉出的用戶條目。

控制器

class Users extends Controller 
{ 
    function Users() 
    { 
     parent::Controller(); 
    } 

    function browse() 
    { 
    } 

    function edit($id) 
    { 
     // Fetch user by id 
     $user = $this->user_model->get_user($id); 

     // Form validation 
     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('name', 'Name', 'required'); 

     if ($this->form_validation->run()) 
     { 
      // Update user 
      $user['name'] = $this->input->post('name', true); 
      $this->user_model->update_user($user); 

      // Redirect to some other page 
      redirect('users/browse'); 
     } 
     else 
     { 
      // Load edit view 
      $this->load->view('users/edit', array('user' => $user)); 
     } 
    }   
} 

型號

class User_model extends Model 
{ 
    function User_model() 
    { 
     parent::Model(); 
    } 

    function get_user($user_id) 
    { 
     $sql = 'select * from users where user_id=?'; 
     $query = $this->db->query($sql, array($user_id)); 
     return $query->row(); 
    } 

    function update_user($user) 
    { 
     $this->db->where(array('user_id' => $user['user_id'])); 
     $this->db->update('users', $user); 
    } 
} 

查看

<?php echo form_open('users/edit/' . $user['user_id']); ?> 
<div> 
    <label for="name">Name:</label> 
    <input type="text" name="name" value="<?php echo set_value('name', $user['name']); ?>" /> 
</div> 
<div> 
    <input type="submit" value="Update" /> 
</div> 
<?php echo form_close(); ?> 
+0

現在完全與這最後一個片段混淆,請給我一個簡單的例子,我是新來的CI。您沒有使用活動記錄,我的代碼段僅使用活動記錄。 CI很難理解...... – Sam 2010-02-20 19:29:21

+0

爲了檢索記錄,我決定自己寫sql語句,而不是使用CI數據庫的get_where方法。它只是出於習慣,因爲這是我通常做的。這並不重要。您可以改用get_where方法。 點是代碼的一般模式: 1.控制器動作將被調用並且的用戶ID進行更新。 2.用戶對象從模型中檢索並傳遞給視圖。 3.視圖呈現可以編輯名稱的表單。 4.表單被重新發回到相同的控制器方法,並調用模型來更新用戶。 – 2010-02-20 22:46:29

+0

感謝您的幫助我得到了答案!非常感謝您Stephenc – Sam 2010-02-21 08:15:27

0

很難從代碼片段中看到問題,請嘗試提供更多有關應用程序結構和代碼示例放置位置的信息。

假設在上一個代碼清單中('somewhere in index'),您從表單中獲取$ id,但是您將表單輸入框的ID定義爲'id'array('name'=>'fname' ,「ID」 =>的「id」),而不是一個整數值,所以也許這是問題所在。

$ data數組在第三個代碼清單中傳遞到哪裏?

+0

我不能夠理解?你可以給我一個小例子,我從用戶的輸入框中獲取價值,然後提交它,並將其發送到MySQL表(測試),然後我有一個視圖,其中我顯示的數據與編輯錨旁邊的數據...當我點擊該編輯錨點時,它應該返回到輸入框中相同值的表單,並從同一個mysql表(測試)中重新進行編輯和更新並將其發回表格!記得我拿$ id作爲關鍵來抓住每一個數據行! – Sam 2010-02-20 14:43:14

0

從你的問題我想你想顯示一個表單來編輯數據庫中的人員記錄。

控制器代碼

// Normally data object is retrieved from the database 
// This is just to simplify the code 
$person = array('id' => 1, 'name' => 'stephenc'); 

// Pass to the view 
$this->load->view('my_view_name', array('person' => $person)); 

查看代碼

<?php echo form_label('Your name: ', 'name'); ?> 
<?php echo form_input(array('name' => 'name', 'value' => $person['name'])); ?> 

不要忘記重複一下從form_label和form_input返回。這可能是你出錯的地方。

+0

只需告訴我如何從mysql表中獲取記錄到form_input框以便編輯並在UPDATE之後將其發送回表格,例如 | id |名稱| 之前:1. Vipul //由用戶動態插入。 After:1. Vikas // steps。 a。)第一個用戶點擊編輯錨點。 b。)用戶被重定向到可以編輯條目的頁面。 。 三)編輯用戶後,點擊提交,並進入被更新 注:如果用戶要更新第三個項目爲例,應該重定向到表第三項update.With一些form_input field.That的它 – Sam 2010-02-20 16:04:05

+0

我的幫助用Controller,Model和View添加了另一個答案,以顯示如何更新這樣的用戶條目。 – 2010-02-20 17:26:42

+0

你能指出我錯在哪裏嗎?這是模型。 功能main_m(){$ 數據[ '納米'] =陣列( '姓名'=> 'FNAME', 'ID'=> 'FNAME'); $ data ['id'] ['value'] = 0; 返回$ data; } 功能insert_entry(){$ 數據=陣列( '名稱'=> $這個 - >輸入 - >交的( 'FNAME')); $ this-> db-> insert('test',$ data); } function get_all(){ $ query = $ this-> db-> get('test'); return $ query-> result(); } 功能get_single($ ID){ $ Q = $這個 - > DB-> getwhere( '測試',陣列( 'ID'=> $ ID)); return $ q-> row_array(); } – Sam 2010-02-21 06:18:21