2015-04-02 93 views
0

我試圖用數據表提交多個表單。用戶必須選擇輸入行數,在其中他可以提交一些信息 - 當你在db中插入行時,它就像Phpmyadmin一樣。輸入行的名稱是相同的。我用循環顯示許多行。但以這種方式與嵌套的foreach,當我提交兩行信息,在數據庫中有8行。怎麼做? 這是我的觀點:如何使用數據表在數據庫中插入多個表單

echo form_open('admin/add_questions/'); 
 
?> 
 
<table id='example'> 
 
\t \t <thead> 
 
    \t <tr><th>Question</th><th>Code</th><th>Group</th><th>Is_reverse</th></tr> 
 
    </thead> 
 
    <tfoot> 
 
      <tr> 
 
       <th></th> 
 
       <th></th> 
 
       <th></th> 
 
       <th></th>        
 
      </tr> 
 
     </tfoot> 
 
    <tbody> 
 
    <?php \t for($i=0; $i<=20; $i++) { 
 
    \t ?> 
 
    \t \t <tr> 
 
    \t \t <td> 
 
    \t \t \t <input type="text" name="question[]" id="add_question_table" /> 
 
    \t \t </td><td> 
 
    \t \t \t <input type="text" name="code[]" id="add_question_table" /> 
 
    \t \t </td><td> 
 
    \t \t \t <input type="text" name="group[]" id="add_question_table" /> 
 
    \t \t </td><td> 
 
    \t \t \t <input type="text" name="is_reverse[]" id="add_question_table" /> 
 
    \t \t </td></tr> 
 
    \t \t <?php 
 
    \t } 
 

 
    \t \t ?> 
 

 
    </tbody> 
 
    </table>

我的型號是:

<?php 
 
class Admin_model extends CI_model { 
 
\t public function __construct() { 
 
     parent:: __construct(); 
 
     $this->load->database(); 
 
     $this->load->library('session'); 
 
    } 
 

 
    public function add_questions() { 
 
     
 
     $date = new DateTime("now"); 
 
     foreach($this->input->post('question') as $v) { 
 

 
      foreach($this->input->post('code') as $f) { 
 
       foreach($this->input->post('group') as $val) { 
 

 
    \t $data = array(
 
      'question'=>$v , 
 
      'code'=>$f, 
 
      'survey_id'=>$this->uri->segment(3), 
 
      'group_id'=>$val, 
 
'created_at'=>$date->format('Y-m-d H:i:s')  
 
     ); 
 
     $this->db->insert('survey_questions',$data); 
 
} 
 
      
 
    } 
 
}

什麼是做到這一點的呢? :)

+0

這將是有益的,如果你發佈的控制器代碼。 – Tpojka 2015-04-02 09:11:28

回答

2

嗨,從我的角度來看,它最好把$ _POST作爲參數傳遞給你的add_questions()模型方法。你可以試試下面的辦法:)

//controller code 
 
$this->admin_model->add_questions($_POST); 
 

 
//model code 
 
function add_questions($data=array()) 
 
{ 
 
    if(count($data) > 0) 
 
    { 
 
    $date = new DateTime("now"); 
 
    for($i=0;$i<count($data['question']);$i++){ 
 
     $insert = array(); 
 
     $insert['question'] = $data['question'][$i]; 
 
     $insert['code'] = $data['code'][$i]; 
 
     $insert['survey_id'] = $data['survey_id'][$i]; 
 
     $insert['group_id'] = $data['group_id'][$i]; 
 
     $insert['created_at'] = $date->format('Y-m-d H:i:s'); 
 
     $this->db->insert('survey_questions',$insert); 
 
    } 
 
    } 
 
}

+0

非常感謝!現在完美了! :) :) – 2015-04-02 10:08:44

相關問題