2015-09-26 5 views
3

я наткнулся на беспокойство по поводу моих друзей CI проекта: он хочет, чтобы добавить новый <input> тег для тела и вставить в MySQL, так что я сделал этот код:CodeIgniter динамический ввод с 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

Слишком много циклов, вложенных друг в друга, что приведет к слишком большому количеству записей в базе данных.

Также редирект был внутри цикла, так как только была сделана первая вставка редирект будет происходить

Try:

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

Тпх для ответа братан – GODZ