【问题标题】:Data not inserting into the database codeigniter数据未插入数据库 codeigniter
【发布时间】:2014-07-08 14:14:49
【问题描述】:

我尝试了所有可能的方式将数据插入数据库,但我没有得到任何类型的输出 这是我的控制器 pages.php

<?php

class pages extends CI_Controller {

    function view($page = 'index') {

        $this->load->view('pages/index');

        function insert_data() {
            $this->load->model('contact_model');
            $this->contact_model->insert_entry();
        }

    }

}

?>

这是我的视图视图/pages/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>

这是我的模型models/contact_model

<?php

class contact_model extends CI_Model {

    function insert_entry() {
        $data = array(
            'name' => 'name',
            'email' => 'email',
            'message' => 'message');

        $this->db->insert('contactus', $data);
    }
?>

这是我的 custom.js 文件

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

【问题讨论】:

  • var_dump 您的查询使用$this-&gt;db-&gt;last_query() 并将其运行到phpmyadmin
  • 您没有将发布的数据传递给模型。
  • 我没明白你的意思
  • @user3778654 表示您在数据库中传递了static 数据,而不是通过获取表单值。

标签: php jquery mysql codeigniter


【解决方案1】:

首先从view 函数中删除您的insert_data 函数,然后独立添加它,然后获取帖子并将它们传递给您的模型,如下所示:

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);
    }

}

改变你的模型如下:

class contact_model extends CI_Model {

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

}

将点击事件添加到您的 javascript:

$("#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); // change here too
         }
     });
 });

【讨论】:

  • 嗨,我尝试了上述解决方案仍然无法正常工作
  • 您是否有一个名为contactus 的表,上面的列带有auto_increment id?我在本地试过了,没有任何问题,你也有任何错误吗?请在发布表单后检查控制台日志,并在此处写下控制台日志显示的内容。
  • 这是我在控制台中遇到的错误 @Burak POST localhost/ci/%3C?php%20echo%20site_url(%27pages/… 404 (Not Found) jquery.min.js:4 send jquery.min.js:4 m.extend.ajax jquery .min.js:4 (匿名函数) custom.js:2 x.event.dispatch jquery.js:5095 v.handle jquery.js:4766
  • 如果您已将 javascript 粘贴到您的 custom.js 文件中,那么 php 将无法工作,因为您无法像日志显示的那样让帖子正常工作,这就是为什么帖子会出现 404 错误的原因结果。在您的 .js 文件中写入完整的 url 或将 javascript 部分复制到您的视图文件中。
猜你喜欢
  • 2021-02-07
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
  • 2014-05-04
  • 2015-10-07
  • 2015-08-04
相关资源
最近更新 更多