2014-05-28 12:19
浏览 38


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() {
    $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->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();

        url: 'faq/get_faq_data',
        data: ({ title: title }),
        dataType: 'json', 
        type: 'post',
        success: function(data) {
            response = jQuery.parseJSON(data);
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongyao4419 2014-05-28 12:22

    Try this:

    $(function(){ // start of doc ready.
          e.preventDefault();  // stops the jump when an anchor clicked.
          var title = $(this).text(); // anchors do have text not values.
            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
    }); // 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().

    解决 无用
    打赏 举报

相关推荐 更多相似问题