2017-03-04 19 views
0

私のデータベースには、プロバイダ、ファミリ、および関係プロバイダの3つのテーブルがあります。各プロバイダには多くのファミリがあります。コードセレクタのデータベースに複数選択(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); 
関連する問題