2014-07-08 5 views
0

я пытался всеми возможными способами, чтобы вставить данные в базу данных, но я не получил какой-либо выход Это мой контроллер pages.phpданных не вставляя в базу данных CodeIgniter

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

    } 

} 

?> 

это мой просмотр просмотр/страницы/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 

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

'var_dump' ваш запрос, используя' $ this-> db-> last_query() 'и запустил его в' phpmyadmin' –

+0

Вы не передали опубликованные данные модели. – Rorschach

+0

Я не понял, что вы имели в виду – NaveenKG

ответ

0

Сначала удалить insert_data функцию из вашей view функции, и добавить ее самостоятельно от этого, и получить сообщения и передавать их в модель, как это:

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

привет, я попробовал вышеуказанное решение, все еще не работает – NaveenKG

+0

У вас есть таблица с контактом с столбцами выше с идентификатором auto_increment? Я пробовал это в своем местном, проблем не было, вы тоже получили ошибку? Пожалуйста, проверьте журнал консоли после публикации формы и напишите здесь, что показывает консольный журнал. – Burak

+0

это ошибка, которую я получаю в консоли @Burak POST http: // localhost/ci /% 3C? Php% 20echo% 20site_url (% 27pages/insert_data% 27);% 3E 404 (не найдено) jquery.min .js: 4 отправить 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 – NaveenKG

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