2015-09-26 56 views
3

我偶然發現了一個問題關於我的朋友CI項目:他想一個新的<input>標籤添加到身體並插入到MySQL,所以我做了這個代碼:使用jQuery笨動態輸入和插入到數據庫

<?php echo form_open('welcome');?> 
<div id="container"> 
    <p id="add_field"><a href="#"><span>&raquo; Add Educational Background.....</span></a></p> 
</div> 
<div class="spacer"></div> 
<input id="go" name="btnSubmit" type="submit" value="insert" class="btn" /> 
<?php echo form_close();?> 

控制器:

$this->load->view('welcome_message'); 
$this->load->model('test'); 

if($this->input->post('attain',true) != null){ 

    foreach ($this->input->post('attain',true) as $a) { 
     foreach ($this->input->post('major',true) as $m) 
      foreach ($this->input->post('school',true) as $s) 

       $data = array(
        'attain'=>$a, 
        'major'=>$m, 
        'school'=>$s); 
       $this->db->insert('stress',$data); 

       print_r($data); // for show purposes 

       redirect(base_url()); 

      } 

     } 

的JavaScript:

<script type="text/javascript"> 
var count = 0; 
$(function(){ 
    $('p#add_field').click(function(){ 
     count += 1; 
     $('#container').append(
      '<input id="major' + count + '" name="attain[]' + '" type="text" />' + 
      '<input id="major' + count + '" name="major[]' + '" type="text" />' + 
      '<input id="' + count + '" name="school[]' + '" type="text" /><br />'); 

    }); 
}); 
</script> 

這是用CodeIgniter編寫的。

回答

2

相互嵌套的循環太多,會導致太多的數據庫條目。

而且重定向是內循環,從而一旦第一插入有人會出現重定向

嘗試:

if ($this->input->post('attain')) { // returns false if no property 
    $attain = $this->input->post('attain', true); 
    $schools = $this->input->post('school', true); 
    $major = $this->input->post('major', true); 

    foreach ($attain as $i => $a) { // need index to match other properties 
     $data = array(
      'attain' => $a, 
      'major' => isset($majors[$i]) ? $majors[$i] : '', 
      'school' => isset($schools[$i]) ? $schools[$i] : '' 
     ); 

     if (!$this->db->insert('stress', $data)) { 
      // quit if insert fails - adjust accordingly 
      print_r($data); 
      die('Failed insert'); 
     }  
    } 

    // don't redirect inside the loop 
    redirect(base_url()); 

} else{ 
    echo 'No Data'; 
} 
+0

TNX的答案兄弟 – GODZ