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

41,850

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().

Share:
41,850
NiceTry
Author by

NiceTry

Updated on November 26, 2021

Comments

  • NiceTry
    NiceTry over 2 years

    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);
            }             
        });
    });
    
  • NiceTry
    NiceTry almost 10 years
    thank you for your answer. I have just edited my code but still nothing happens while clicking on the link. Could you check my code once more?
  • NiceTry
    NiceTry almost 10 years
    ok thank you, now I should learn how to pass js object instead of variable
  • NiceTry
    NiceTry almost 10 years
    Could you check now please?