2017-03-04 68 views
0

我在我的數據庫中有3個不同的表:提供者,家族和relationprovider家族。每個提供商可以有許多家庭。在codeigniter中插入多選(html表單)到數據庫中的選擇

在添加新提供程序的表單中,我有多個選擇,您添加屬於該提供程序的系列。我使用帶有添加按鈕的選擇下拉菜單將項目添加到選定倍數。 /視圖/ proveedor /添加/

<label for="nombresFamilia" class="col-md-4 control-label"></label> 
<div class="col-md-6"> 
    <select multiple id="nombresFamilia" name="nombresFamilia[]" class="form-control"> 
     <option value="CABLES">CABLES</option> 
     <option value="PCR">PCR</option> 
     <option value="POSTES">POSTES</option> 
    </select> 
</div> 

我需要的ID爲當前的提供者和所有選定的家庭和插入表中的那些值relationproviderfamily,其中只有到列。所以應該有一個供應商和每個屬於它的家庭。

`idProveedor` int(11) NOT NULL, 
`idFamilia` int(11) NOT NULL 

這是我在我的模型「Proveedormodel」使用功能插入到數據庫

function add_uk_proveedor_familia($id, $params){ 
    foreach($param as $clave){ 
     $clave = $this->db->query("SELECT id FROM familia WHERE clave = '$param'"); 
     $this->db->query("INSERT INTO 'relacionproveedorfamilia' ('idProveedor', 'idFamilia') VALUES ('$id', '$clave')"); 
    } 
} 

而這正是我所說的功能從控制器「Proveedor」

$idProveedor = $this->Proveedormodel->get_proveedor($id); 
$params_familia = array(
    'nombresFamilia' => $this->input->post('nombresFamilia') 
); 
$relacion_proveedor = $this->Proveedormodel->add_uk_proveedor_familia($idProveedor, $params_familia); 

我剛剛開始使用codeigniter,並且從本網站的其他問題獲得了很多幫助,但是我一直無法將其解決。任何幫助將非常感激。

您可以檢查項目here

回答

1

嘗試這些代碼。

形式:

<label for="nombresFamilia" class="col-md-4 control-label"></label> 
<div class="col-md-6"> 
    <select multiple="multiple" id="nombresFamilia" name="nombresFamilia[]" class="form-control"> 
     <option value="CABLES">CABLES</option> 
     <option value="PCR">PCR</option> 
     <option value="POSTES">POSTES</option> 
    </select> 
</div> 

控制器 「Proveedor」:

$idProveedor = $this->Proveedormodel->get_proveedor($id); 
$params_familia = array(
    'nombresFamilia' => implode(",", $this->input->post('nombresFamilia')) 
); 
$relacion_proveedor = $this->Proveedormodel->add_uk_proveedor_familia($idProveedor, $params_familia); 

而在你的模式 「Proveedormodel」,只需插入數據。

0

nombresFamilia本身返回數組的存儲庫,以便從控制器中刪除追加數組

控制器文件

$idProveedor = $this->Proveedormodel->get_proveedor($id); 
$params_familia = $this->input->post('nombresFamilia'); 

$relacion_proveedor = $this->Proveedormodel->add_uk_proveedor_familia($idProveedor, $params_familia); 
相關問題