2017-03-04 53 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); 
相关问题