2017-12-18 15 views
-2

私はCodeIgniterの新機能であり、まだ学習しています。 私はユーザーがカテゴリとサイズを追加するビューを持っています。サイズには無限または動的な入力フィールドがあります。したがって、ex。パンツ、パンツはサイズがたくさんあるので、ユーザーはちょうど追加ボタンをクリックします。しかし、ここに私はすべての入力を節約するためにストックされているものです。カテゴリとそれに対応するサイズのカテゴリを保存します。 ここに私のテーブルには、複数のデータベースに1つのボタンで複数の値を保存するcodeigniter mysql

CREATE TABLE `category` (
    `category_id` int(11) NOT NULL AUTO_INCREMENT, 
    `category_name` varchar(55) NOT NULL, 
    PRIMARY KEY (`category_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1; 
CREATE TABLE `sizes` (
    `size_id` int(11) NOT NULL AUTO_INCREMENT, 
    `size` varchar(45) NOT NULL, 
    `category_id` int(11) NOT NULL, 
     PRIMARY KEY (`size_id`), 
     KEY `cat_fk_idx` (`category_id`), 
     CONSTRAINT `cat_fk` FOREIGN KEY (`category_id`) REFERENCES `category` 
     (`category_id`) 
      ) 

だとここで私のview.phpは、私はあなたが私を助ける願ってい

<div class="col-sm-5"> 
<?php echo $this->session->flashdata('errorMessage');?> 
<?php echo $this->session->flashdata('successMessage');?> 
<?php echo form_open('category_con/add_category'); ?> 
<?php echo form_fieldset('<h1 class="text-danger">Categories</h1>'); ?> 
<div class="form-group"> 
    <label for='Username'>Add New Category</label> 
    <input type="text" name="category_name" class="form-control" placeholder="Add new Category here"> 
</div> 

<script src="assets/js/jquery.min.js"></script>   
       <div class="form-group"> 
        <form name="add_name" id="add_name"> 
          <div class="table-responsive"> 
           <table class="table table-bordered" id="dynamic_field"> 
            <tr> 
             <td><input type="text" name="name[]" placeholder="Add Size" class="form-control name_list" /></td> 
             <td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td> 
            </tr> 
           </table> 

          </div> 
        </form> 
       </div> 
    <div class="form-group"> 
    <input type="submit" name="save_category" class="btn btn-success" value="Save Category"> 
</div>   
</div> 

<script> 
$(document).ready(function(){ 
     var i=1; 
     $('#add').click(function(){ 
      i++; 
      $('#dynamic_field').append('<tr id="row'+i+'"><td><input type="text" name="name[]" placeholder="Add Size" class="form-control name_list" /></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>'); 
     }); 
     $(document).on('click', '.btn_remove', function(){ 
      var button_id = $(this).attr("id"); 
      $('#row'+button_id+'').remove(); 
     }); 
     $('#submit').click(function(){    
      $.ajax({ 
       url:"name.php", 
       method:"POST", 
       data:$('#add_name').serialize(), 
       success:function(data) 
       { 
        alert(data); 
        $('#add_name')[0].reset(); 
       } 
      }); 
     }); 
}); 
</script> 

です。ありがとう。

+0

コントローラコードを忘れた – madalinivascu

+0

コントローラが試行錯誤中です。だから、コトローラとモデルの部分で助けてくれることを願っています。ありがとうございます –

+0

あなたは私たちがあなたの仕事の2/3をコーディングしたいと思っていますか? – Alex

答えて

1

あなたのコントローラ上のどこかでは、動的モデルクラスに

$this->load->model('test'); //Model loaded 
$this->test->create();  // Insertion happened to multiple tables 

をデータと同じくらいを渡すことができます

<?php 

class Test extends CI_Model 
{ 

    public function create() 
    { 
     $data = array(
      array(
       'category_name' => 'Data Input of category_name' // data input (category_name) 
      ), 
      array(
       'category_name' => 'Data Input category_name' // data input (category_name) 
      ) 
     ); 


     $this->db->insert_batch('category', $data); 

     $last_row_id = $this->db->insert_id(); // Gets last row id (category_id) 

     $data = array(
      array(
       'size'  => 'Data input of size' , 
       'category_id' => $last_row_id 
      ), 
      array(
       'size'  => 'Data input of size' , 
       'category_id' => $last_row_id 
      ) 
     ); 


     $this->db->insert_batch('sizes', $data); 

    } 


} 

test.phpを名前でモデルを作成します。

+0

これは無制限のフィールドまたは動的なフィールドを保存するかどうか尋ねたいだけですか? –

+0

更新された回答を参照してください –

+0

PHPエラーが発生しました 重大度:通知 メッセージ:配列から文字列への変換 –

関連する問題