2015-04-15 55 views
0

我想知道是否有人能夠啓發我。我的控制器函數接受一個表單輸入請求,並通過模型函數將其保存到數據庫。我的代碼如下。CodeIgniter - 插入和查看記錄

我已經嘗試了幾種方法,但看起來像卡住了;下面是我的控制器。

function submit_result() 
    { 
     if($this->input->post('Name') && $this->input->post('Class') && 
      $this->input->post('Subject') && $this->input->post('grade_value') && $this->input->post('teacher_value')) 
     { 
      $this->load->model('class_model'); 
      $this->class_model->submit_grade($this->input->post('Name'), $this->input->post('Class'), $this->input->post('Subject'), $this->input->post('grade_value'), $this->input->post('teacher_value'), $this->input->post('comment_value')); 

      redirect(base_url().'Grader/search2/'); 
     } 
    } 
} 
?> 

這裏是模型看起來像

function submit_grade($name, $class, $subject, $result, $teacher, $comment) 
    { 
     $sql = "INSERT INTO `kepsek_ifa`.`mon_ifa_result` 
     (`id`, `Name`, `Class`, `Subject`, `Result`, `Teacher`, `Comment`) 
     VALUES 
     (NULL," . $this->db->escape($name) . "," . $this->db->escape($class) . "," 
     . $this->db->escape($subject) . ", '$result' ," 
     . $this->db->escape($teacher) . "," . $this->db->escape($comment) . ")"; 

     $query = $this->db->query($sql); 
    } 
} 

在我看來,我有這個

 </head> 
<body> 

<div id="container"> 
    <h1><?php echo $student_name?></h1> 
    <div id="body"> 
     <p> 
     <?php $this->load->helper('form'); ?> 

<?php if (! is_null($subject_result)): ?> 
    <?php if (count($subject_result)): ?> 
     <div style="padding-top: 20px"> 
     <table style="border: 1px solid black"> 
     <tr style="font-weight: bold"><td>CLASS</td><td>SUBJECT</td><td>RESULT</td><td>GRADER</td><td>COMMENT</td></tr> 
     <?php foreach ($subject_result as $result): ?> 
      <tr><td><?php echo $class ?></td><td><?php echo $result->Subject ?></td><td> 
      <?php $hidden = array('Name' => $student_name, 'Class' => $class, 'Subject' => $result->Subject); 
        echo form_open("Grader/submit_result", '', $hidden); 
      ?> 
      <?php echo form_dropdown('grade_value', $grade_code); ?> 
      </td><td> 
      <?php echo form_dropdown('teacher_value', $teacher_data); ?> 

         </td><td> 
         <?php echo form_input('comment_value'); ?> 
         <?php echo form_submit('submit_result', 'Submit'); ?> 
         </td><td> 

      <?php echo form_close(); ?> 
      </td></tr> 

     <?php endforeach ?> 

     </table> 

     <p><a href="<?php echo base_url(). "Grader/search2" ?>"> HOME </a></p> 
    </div> 
    <?php else: ?> 
     <p><em>There are no results for your query.</em></p> 
    <?php endif ?> 
<?php endif ?> 
     </p> 
    </div> 

    <p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p> 
</div> 

我都認爲完美的設立除了部分地方將有一個提交按鈕的每一行,我想要的是一個提交按鈕來保存我的視圖中的所有數據

我有t像我在視圖中使用form_hidden那樣使用了不同的組合,但仍然失敗。

問題

如何TA只有一個提交我的視圖頁面,將節省用戶提交的所有記錄? 有什麼幫助嗎?

+0

請問一個具體的問題,而不是「這是我的代碼,它已經壞了。」 –

+0

我的問題是在帖子的底部,我想有一個提交按鈕,將保存所有查詢結果,它現在正在工作,但每行都有自己的提交按鈕 – nubie

回答

0

你可以這樣說: 您認爲文件:

<?php 
    echo form_open("Grader/submit_result"); 
    echo form_hidden('Name' , $student_name); 
    echo form_hidden('Class' , $class); 
    ?> 
<table style="border: 1px solid black"> 
    <tr style="font-weight: bold"><td>CLASS</td><td>SUBJECT</td><td>RESULT</td><td>GRADER</td><td>COMMENT</td></tr> 
    <?php 
     form_hidden('username', 'johndoe'); 
     foreach ($subject_result as $result): ?> 
     <tr><td><?php echo $class ?></td><td><?php echo $result->Subject ?></td><td> 
     <?php 

      echo form_hidden('Subject[]',$result->Subject); 
     ?> 
     <?php echo form_dropdown('grade_value[]', $grade_code); ?> 
     </td><td> 
     <?php echo form_dropdown('teacher_value[]', $teacher_data); ?> 

        </td><td> 
        <?php echo form_input('comment_value'); ?> 
        <?php echo form_submit('submit_result', 'Submit'); ?> 
        </td><td> 


     </td></tr> 

    <?php endforeach ?> 

    </table> 
    <?php echo form_close(); ?> 

在控制器遍歷主題計數。

$c = count($this->input->post('Subject')); 
    for($i=0;$i<$c;$i++){ 
     $subject = $this->input->post('Subject')[$i]; 
     $grade_value = $this->input->post('grade_value')[$i]; 
     $teacher_value = $this->input->post('teacher_value')[$i]; 

     // insert code goes here. 
    } 
+0

謝謝,但它不適用於我的案件 – nubie

+0

我錯過了任何部分,或者如果可以的話,您可以向我發送我需要上傳到我的腳本中的完整代碼 – nubie