2017-11-06 13 views
0

私は、コメントセクションで、私がコメントの挿入機能に問題があるというCodeigniterのブログを開発しています。ビュー/フォーム、コントローラ、モデルはすべて問題なく、まだDBに行を挿入できないようです。誰か助けてくれますか?codeigniterにコメントの問題を挿入する

表示comments.php

<div class="container"> 
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous"> 
    <link href="<?php echo base_url(); ?>template/css/style.css" rel="stylesheet"> 
    <div class="row"> 
    <!-- Contenedor Principal --> 
    <div class="comments-container"> 
     <h1>Coments</h1> 
     <h3><a data-toggle="modal" data-target="#myModal" href="#">Add a coment</a></h3> 
     <ul id="comments-list" class="comments-list"> 
     <li> 
      <?php foreach ($result as $result):?> 
      <div class="comment-main-level"> 
      <!-- Contenedor del Comentario --> 
      <div class="comment-box"> 
       <div class="comment-head"> 
       <h6 class="comment-name by-author"><?php echo $result->name; ?></h6> 
       <span><?php echo time_elapsed_string($result->created); ?></span> 
       </div> 
       <div class="comment-content"> 
       <?php echo $result->body; ?> 
       </div> 
      </div> 
      </div> 
      <?php endforeach; ?> 
     </li> 
     </ul> 
    </div> 
    </div> 
</div> 
<!-- Modal --> 
    <div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-dialog"> 
     <!-- Modal content--> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <h4 class="modal-title">Add a coment</h4> 
     </div> 
     <div class="modal-body"> 
      <form method="post" action="<?php echo base_url('index.php/coment'); ?>" > 
      <div class="form-group"> 
       <label for="name">Your name:</label> 
       <input type="hidden" name="post" id="post" value="22"/> 
       <input class="form-control" type="text" name="name" id="name" /><br /> 
      </div> 
      <div class="form-group"> 
       <label for="coment">Your coment:</label> 
       <textarea class="form-control" name="body" id="body" rows="10" colums="3"></textarea><br /> 
      </div> 
      <button type="submit" class="btn btn-default" data-dismiss="modal">Submit</button> 
      </form> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 
<?php $this->load->view("includes/footer"); ?> 

コントローラcoment.php

<?php 
    defined('BASEPATH') OR exit('No direct script access allowed'); 
    class Coment extends CI_Controller{ 
    public function __construct(){ 
     parent::__construct(); 
     $this->load->model('coment_model'); 
    } 

    public function index(){ 
     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('name', 'name', 'trim|required|min_length[5]'); 
     $this->form_validation->set_rules('body', 'body', 'trim|required|min_length[5]'); 

     if ($this->form_validation->run() == FALSE) { 
     echo "<script>alert('Your coment could not be posted');</script>"; 
     }else{ 
      $data = array(
      'post' => $this->input->post('post'), 
      'name' => $this->input->post('name'), 
      'body' => $this->input->post('body') 
     ); 
     $this->coment_model($data); 
     $data['message'] = 'Coment Inserted Successfully'; 
     } 
    } 
    } 
?> 

そして、あなたのコードに基づいてモデルcoment_model.php

<?php  
    class coment_model extends CI_Model{ 
     public function __construct() { 
     parent::__construct(); 
     } 

     public function index($data){ 
     // Inserting in Table(students) of Database(college) 
     $this->db->insert('comment', $data); 
     } 
    } 
?> 
+0

フォームを送信するとどうなりますか?何かエラーがありますか? あなたはそれがどこで停止したかを追跡しましたか? –

+0

コントローラ上でモデル関数 '$ this-> coment_model-> index($ data)'を呼び出さないでください。https://www.codeigniter.com/user_guide/general/models.html#loading-a-model – user4419336

+0

あなたが直面しているエラー? –

答えて

0

をfinnaly私だけと仮定することができますあなたの挿入が間違ったテーブルを指しています。

public function index($data){ 
    // Inserting in Table(students) of Database(college) 
    $this->db->insert('comment', $data); 
} 

コメント行を正しく読み込んだ場合、テーブルは「students」と呼ばれ、「comment」という名前のテーブルに挿入されます。

テーブルが存在し、すべてのフィールドについて同じチェックを行っていますか。

これで問題が解決しない場合は、レポートを変えてエラーを報告し、質問にエラーを置き、回答を更新することができます。

+0

実際には、それは別のプロジェクトのコメントだけです。コード自体とは関係ありません。テーブルは「コメント」と呼ばれます。残念ながら、フォームを送信するとエラーは表示されません。それはうまく動作し、それがhasnt時に実行されたかのように私を同じページにリダイレクトします。何が起きているのか? –

+0

私は問題を見つけました。私にこれを引き起こすのはBootstrap Modalでした。私を助けるためにあなたの時間をとってくれてありがとう、ありがとう。 –