2013-05-30 38 views
0

形勢form_dropdown值提交笨

我在我的數據庫編輯公司的editform。我使用連接表向公司添加一個類別。

我的表:

Companies 
--------- 
idcompanies 
companyname 
country 
telephone 
etc...etc... 

Categories 
---------- 
idcategories 
category 

companycategories 
----------------- 
idcompanycategories 
idcategories 
idcompanies 

問題

我的形式沒有更新下拉。可能是什麼問題呢?

我的下拉表單代碼:

<?php 
    foreach($selected as $row){ 
     $selectie[$row->idcategorieen] = $row->Categorie; 
    } 
?> 

<tr> 
<td><?= form_label('Categorieen'); ?></td> 
<td><?= form_dropdown('categorieen', $opties, key($selectie)); ?></td> 
</tr> 

我的更新控制器:

function updatebedrijven() 
{ 
    $dbres = $this->db->get('categorieen'); 
    $ddmenu = array(); 
    foreach ($dbres->result_array() as $tablerow) { 
     $ddmenu[$tablerow['idcategorieen']] = $tablerow['Categorie']; 
    } 
    $data['opties'] = $ddmenu; 
    $id = $this->uri->segment(3); 
    $id2 = $this->uri->segment(3); 

    $data['selected'] = $this->members_model->getselection($id2); 

    $data['info'] = $this->members_model->getbedrijf($id); 
    $data['id'] = $id; 
    $this->load->view('members/header'); 
    $this->load->view('members/editform', $data); 
    $this->load->view('members/footer');  
} 

function update() 
{ 
    $id = $this->uri->segment(3); 
    echo 'id: '.$id; 
    $data = array(
     'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'), 
     'Postcode' => $this->input->post('Postcode'), 
     'Plaats' => $this->input->post('Plaats'), 
     'Telefoonnummer' => $this->input->post('Telefoonnummer'), 
     'Email' => $this->input->post('Email'), 
     'Website' => $this->input->post('Website'), 
     'Profiel' => $this->input->post('Profiel'), 
     'Adres' => $this->input->post('Adres'), 
    ); 
    if($this->input->post('logo')) { $data['logo'] = $this->input->post('logo'); } 
    $this->members_model->updatebedrijf($id, $data); 
    $b = $this->session->userdata('idbedrijven'); 
    redirect("members/$b"); 
} 

注意:當我加入 '分類'=> $這個 - >輸入 - >後('類別')到數據數組我得到錯誤未知列。

我的模型:

function updatebedrijf($id, $data) 
{ 
    $this->db->where('idbedrijven', $id); 
    $this->db->update('bedrijven', $data); 

    if($this->db->affected_rows() >= 1) 
    { 
    $to_bedrijfcategorieen2['idcategorieen'] = $this->input->post('categorieen'); 

    $this->insert_bedrijfcat1($to_bedrijfcategorieen2); 
    }else{ 
    return FALSE; 
    } 
} 

function insert_bedrijfcat1($data1) 
{ 
    $id = $this->uri->segment(3); 
    $this->db->where('idbedrijven', $id); 
    $this->db->update('bedrijfcategorieen', $data1); 

    return $this->db->affected_rows() >= 1 ? TRUE : FALSE; 
} 

編輯:我想通了,它是與我的$ selectie(選擇值)。當我刪除它的作品。

+0

我想你錯過了字段名'categorieen' for this''Category'=> $ this-> input-> post('categories')' –

+0

看看我的最後一行。我剛剛編輯過。它說:它與我的$ selectie(選定的值)有關。當我刪除它的作品。 –

+0

所以這是這一部分:'鍵($ selectie)' –

回答

0

你需要設置下拉的multiselect值,而不是key()使用set_multiselect('categorieen',$selectie))

試試這個

<td><?= form_dropdown('categorieen', $opties, set_multiselect('categorieen',$selectie)); ?></td> 

更多信息參見this 希望它可以幫助

+0

嗯我想通了,這是問題'\t \t如果($這個 - > DB-> affected_rows()> = 1) \t \t { '不它工作正常。 –

+0

你知道我是如何解決這個問題的嗎?因爲我認爲這是必需的。 –

0

原來的以下行代碼是問題:

if($this->db->affected_rows() >= 1) 
{ 
$to_bedrijfcategorieen2['idcategorieen'] = $this->input->post('categorieen'); 

$this->insert_bedrijfcat1($to_bedrijfcategorieen2); 
}else{ 
return FALSE; 
} 

它必須是:

$to_bedrijfcategorieen2['idcategorieen'] = $this->input->post('categorieen'); 

$this->insert_bedrijfcat1($to_bedrijfcategorieen2); 

我真的不知道爲什麼給我的問題。但它通過刪除它被修復。