Get a single row from the database using AJAX in CodeIgniter?

ajax, codeigniter, jquery, json, php

Solution

Try this:

$(function(){ // start of doc ready.
   $(".faq_title").click(function(e){
      e.preventDefault();  // stops the jump when an anchor clicked.
      var title = $(this).text(); // anchors do have text not values.

      $.ajax({
        url: 'faq/get_faq_data',
        data: {'title': title}, // change this to send js object
        type: "post",
        success: function(data){
           //document.write(data); just do not use document.write
           console.log(data);
        }
      });
   });
}); // end of doc ready

The issue as i see is this `var title = $(this).val();` as your selector `$(".faq_title")` is an anchor and anchors have text not values. So i suggested you to use `.text()` instead of `.val()`.

Problem

I wonder how to get data from database using AJAX in CodeIgniter. Could you please check the code below to find out the reason of problem? Nothing happens when I click on the link from my view. Here is my view: ``` <a href="#" class="faq_title"><?php echo $faq_title; ?></a> ``` Here is my controller: ``` public function get_faq_data() { $this->load->model("model_faq"); $title = $_POST['title']; $data["results"] = $this->model_faq->did_get_faq_data($title); echo json_encode($data["results"]); } ``` Here is my model: ``` public function did_get_faq_data($title) { $this->db->select('*'); $this->db->from('faq'); $this->db->where('faq_title', $title); $query = $this->db->get('faq'); if ($query->num_rows() > 0) { return $query->result(); } else { return false; } } ``` Here is my JavaScript file: ``` $(".faq_title").click(function() { var title = $(this).text(); $.ajax({ url: 'faq/get_faq_data', data: ({ title: title }), dataType: 'json', type: 'post', success: function(data) { response = jQuery.parseJSON(data); console.log(response); } }); }); ```

Original source