使用codeigniter数据不会插入数据库

时间:2014-07-09 05:59:24

标签: javascript php jquery codeigniter

我已经尝试过在网络上找到解决方案,我找不到任何答案,我按照下面的代码。仍然我的数据不会进入数据库。

这是我的控制器pages.php

  <?php
  class pages extends CI_Controller {

  function view($page = 'index') {
    $this->load->view('pages/index');
  }

  function insert_data(){
    $data = array(
        'name' =>  $this->input->post('name'),
        'email' => $this->input->post('email'),
        'message' => $this->input->post('message')
    );
    $this->load->model('contact_model');
    $this->contact_model->insert_entry($data);
    echo json_encode($data);
 }

 }

 ?>

这是我的查看页面/ index.php

 <form id="submit">

 name <input  type="text" id="name" >    

 email<input type="email" id="email">


 message<textarea id="message"></textarea>              

 <button type="button"  id="submit1">Send</button>
  <a id="ack"></a>         
   </form>

这是我的模型contact_model.php

   <?php

    class contact_model extends CI_Model {
   function insert_entry($data) {
    $this->db->insert('contactus', $data);
   }

   }
   ?>

这是我的js文件custom.js

     $("#submit1").on('click',function(){
      $.ajax({
     url: "<?php echo site_url('pages/insert_data');?>",
     type: 'POST',
     data: {"name": $("#name").val(), "email": $("#email").val(), "message":  
    $("#message").val()},
         success: function(data) {
         $("#ack").html(data); 
      }
      });
     });

3 个答案:

答案 0 :(得分:0)

在codeigniter中,您需要在加载时指定模型中可用的数据库...

$this->load->model('MyModel','',true);

有关详细信息,请参阅documentation

或者,您可以使用

手动加载并连接到模型中的数据库
$this->load->database();

在运行任何查询之前

也是这个

url: "<?php echo site_url('pages/insert_data');?>",

在.js文件中失败。您可以使用javascript并将其放入index.php或在包含.js文件之前定义javascript变量并将该变量用于url即...

//index.php
<script>var sendUrl = "<?php echo site_url('pages/insert_data');?>"</script>
<script src="path/to/js/custom.js"></script>

并将违规行更改为

//custom.js
url: sendUrl,

答案 1 :(得分:0)

确保数据库连接可用,并且用于建立连接的用户具有写入权限。以下代码可能会对您有所帮助。

codeigniter sample db application

答案 2 :(得分:0)

在模型文件中尝试这样

<?php

    class contact_model extends CI_Model {
     * Calls parent constructor
     */
    function __construct()
    {
        parent::__construct();
    }

   function insert_entry($data) {
    $this->db->insert('contactus', $data);
   }

   }
   ?>