2014-01-24 3 views
0

Я использую Codeigniter.I есть таблица.Как проверить и вставить несколько записей с помощью codeigniter

и это исходный код зрения

<?php $this->load->view("admin/v_header");?> 
<?php $this->load->view("admin/v_top_menu");?> 
<?php $this->load->view("admin/v_sidebar");?> 
<div class="content"> 
    <div class="header"> 
     <h1 class="page-title"><?php echo "Form Set Bobot Matapraktikum $kode_mp";?></h1> 
    </div> 
    <?php $this->load->view("admin/v_alert_msg");?> 
    <form class="form-horizontal" name="set_bobot" action="<?php echo base_url();?>admin/save_set_bobot" method="POST"> 
     <fieldset> 
      <table class="table table-bordered table-striped"> 
       <thead> 
        <tr> 
         <th>Minggu Praktikum</th> 
         <th>Bobot TP</th> 
         <th>Bobot Jurnal</th> 
         <th>Bobot TA</th> 
         <th>Bobot Tubes</th> 
         <th>Bobot Mingguan</th> 
        </tr> 
       </thead> 

       <tbody> 

        <?php 

        foreach($total_minggu_praktikum->result() as $row): 
         $total=$row->jumlah_minggu_praktikum; 
        for($i=1;$i<=$total;$i++) 
        { 
         echo "<tr>"; 
         echo "<td>".$i."</td>"; 
         echo "<td><input type='number' min='0' max='100' name='bobot_tp".$i."' value='0' required='true' class='input-mini'/></td>"; 
         echo "<td><input type='number' min='0' max='100' name='bobot_jurnal".$i."' value='0' required='true' class='input-mini'/></td>"; 
         echo "<td><input type='number' min='0' max='100' name='bobot_ta".$i."' value ='0'required='true' class='input-mini'/></td>"; 
         echo "<td><input type='number' min='0' max='100' name='bobot_tubes".$i."' value='0' required='true' class='input-mini'/></td>"; 
         echo "<td><input type='number' min='0' name='bobot_mingguan".$i."' value='0' required='true' class='input-mini'/></td>"; 
         echo "</tr>"; 
        } 
        ?> 
       <input type="hidden" name="total" value="<?php echo $i-1;?>"/> 
       <input type="hidden" name="kode_mp" value="<?php echo $kode_mp;?>"/> 
        <?php 
        endforeach; 

        ?> 
        </tbody> 
       </table> 
      <div class="control-group"> 
       <div class="controls"> 
        <button type="submit" class="btn btn-primary" > 
         <i class="icon-ok icon-white"></i>Save 
        </button> 
       </div> 
      </div> 
     </fieldset> 
    </form> 
</div> 
<?php $this->load->view("admin/v_footer");?> 

и это исходный код контроллера

function save_set_bobot() 
{ 
    $total= $this->input->post('total'); 
    $kode_mp= $this->input->post('kode_mp'); 

    for($i=1;$i<=$total;$i++) 
    { 
     $bobot_tp[$i] = $this->input->post("bobot_tp".$i); 
     $bobot_jurnal[$i]= $this->input->post("bobot_jurnal".$i); 
     $bobot_ta[$i]= $this->input->post("bobot_ta".$i); 
     $bobot_tubes[$i]= $this->input->post("bobot_tubes".$i); 
     $bobot_mingguan[$i]= $this->input->post("bobot_mingguan".$i); 


     if($bobot_tp[$i]+$bobot_jurnal[$i]+$bobot_ta[$i]+$bobot_tubes[$i]!=100) 
     { 
      $this->session->set_flashdata("error_msg","Total jumlah bobot TP, Jurnal, TA dan Tubes pada minggu praktikum $i harus 100"); 
      redirect("admin/set_bobot2?matapraktikum=$kode_mp"); 
     } 
     else 
     { 
      $prm['kode_mp']=$kode_mp; 
      $prm['minggu_praktikum']=$i; 
      $prm['bobot_tp']=$bobot_tp[$i]; 
      $prm['bobot_jurnal']=$bobot_jurnal[$i]; 
      $prm['bobot_ta']=$bobot_ta[$i]; 
      $prm['bobot_tubes']=$bobot_tubes[$i]; 
      $prm['bobot_mingguan']=$bobot_mingguan[$i]; 

      if($this->mbbt->save($prm)) 
      { 
       $this->session->set_flashdata("success_msg","Data bobot berhasil disimpan"); 
       redirect("admin/act_list_bobot?matapraktikum=$kode_mp"); 
      } 
      else 
      { 
       $this->session->set_flashdata("error_msg","Data bobot gagal disimpan"); 
      } 
     }  
    } 
} 

прежде, чем я хочу, чтобы вставить эти данные в базу данных, я должен проверить подтверждение этого данные, где Сумма Бобота Tp, Bobot Jurnal, Bobot Ta и Bobot Tubes должна 100 каждый из minggu praktium (1,2,3,4,5,6,7,8,9,10). и сумма столбца Bobot Mingguan должна 100. Я не могу подтвердить это правило. Как я могу это подтвердить? , и проверка этого правила должна проверять каждую строку Minggu Praktikum (1,2,3,4,5,6,7,8,9,10) и проверять сумму столбца Bobot Mingguan должна быть 100. если это Правило верно, и я должен вставить данные только в одно действие (используя insert_batch). Надеюсь, вы дадите мне Идею, как решить эту проблему. Спасибо.

ответ

1

Пожалуйста, добавьте javascript Проверка в вашей форме может помочь вам.

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

Вставьте значения, используя партию вставки в файл модели.

Примечание: Прочтите также встроенные комментарии.

function save_set_bobot() 
{ 
    $total= $this->input->post('total'); 
    $kode_mp= $this->input->post('kode_mp'); 

    $data = array(); 

    $error = array(); 

    for($i=1;$i<=$total;$i++) 
    { 
     $bobot_tp[$i] = $this->input->post("bobot_tp".$i); 
     $bobot_jurnal[$i]= $this->input->post("bobot_jurnal".$i); 
     $bobot_ta[$i]= $this->input->post("bobot_ta".$i); 
     $bobot_tubes[$i]= $this->input->post("bobot_tubes".$i); 
     $bobot_mingguan[$i]= $this->input->post("bobot_mingguan".$i); 


     if($bobot_tp[$i]+$bobot_jurnal[$i]+$bobot_ta[$i]+$bobot_tubes[$i]!=100) 
     { 
      //error exist please collect the details into the array   
      $error["bobot_error".$i"] = "Total jumlah bobot TP, Jurnal, TA dan Tubes pada minggu praktikum $i harus 100" 

      //If you want to redirect if one error exist please redirect here other wise collect the errors and display it later 
      //$this->session->set_flashdata("error_msg","Total jumlah bobot TP, Jurnal, TA dan Tubes pada minggu praktikum $i harus 100"); 
      //redirect("admin/set_bobot2?matapraktikum=$kode_mp"); 
     } 
     else 
     { 
      $prm = array(); 
      $prm['kode_mp']=$kode_mp; 
      $prm['minggu_praktikum']=$i; 
      $prm['bobot_tp']=$bobot_tp[$i]; 
      $prm['bobot_jurnal']=$bobot_jurnal[$i]; 
      $prm['bobot_ta']=$bobot_ta[$i]; 
      $prm['bobot_tubes']=$bobot_tubes[$i]; 
      $prm['bobot_mingguan']=$bobot_mingguan[$i]; 

      //other wise move the values into the $data array 
      $data[] = $prm; 
     }  
    } 

    //insert the values using insert batch in your model file 
    //$this->db->insert_batch('Table Name', $data); 

    //if you want to redirect at the end use like this 
    if(count($error)>0) 
    { 
     $this->session->set_flashdata("error_msg","Total jumlah bobot TP, Jurnal, TA dan Tubes pada minggu praktikum $i harus 100"); 
     redirect("admin/set_bobot2?matapraktikum=$kode_mp"); 
    } 
} 
+0

О, я вижу, я должен собрать ошибки и $ prm в массиве. но как насчет колонны Bobot Mingguan? как я могу суммировать это значение столбца? это значение также должно быть 100. Thx –

+0

http://www.php.net/manual/en/function.array-sum.php сумма массива может помочь вам в дальнейшем – Sundar

Смежные вопросы