簡體   English   中英

使用ajax codeigniter從數據庫中獲取數據

[英]fetch data from database using ajax codeigniter

在此代碼中,單擊按鈕后,它應該從數據庫中獲取數據並使用jquery和ajax在適當的div中動態顯示它,但我沒有得到任何輸出,以下是我的代碼:

控制者

defined('BASEPATH') OR exit('No direct script access allowed');

class Afcks extends CI_Controller 
{
public function __construct()
{
    parent::__construct();
    $this->load->model('afcks_search','am');        
}
function index()
{
    $this->load->view('afcks_home');
}
function search_course()
 {
        $result=$this->am->search_course();
        echo json_encode($result);
 }
}

模型

 class Afcks_search extends CI_Model
 {
    function search_course()
    {
        $query=$this->db->query("SELECT course_name FROM courses");
        return $query->result();
     }
}

視圖

 <head>
  <script>
 $(document).ready(function(){
        $("button").click(function(){

            $.ajax({
                url:"<?php echo base_url(); ?>/afcks/search_course";
                type:"POST",
                dataType:"json",
                data:req,
                success:
                function(data)
                {
                    var str='';'
                    str+='<ul>';
                    for(var i = 0; i< data.length; i++)
                    {
                        str+='<li>'+data.course+'</li>';
                    });
                    str+='</ul>';
                    $('#course').html(str);
                }
            });
        });
    });
    </script>  
 </head>
 <body> 
<button> click me </button>
<div id="course"> </div>
</body>

您從ajax請求錯誤的URL。 在您的控制器中,方法名稱為search_course因此將ajax網址更改為:

url:"<?php echo base_url(); ?>/afcks/search_course";

在將結果檢索到data ,也將obj更改為data

for(var i = 0; i< data.length; i++)
{
      str+='<li>'+data.course_name+'</li>'; //<----change here
 });

請復制我的代碼,也嘗試更改基本url和json數據轉換

<head>
  <script>
 $(document).ready(function(){
        $("button").click(function(){
                 var base=<?php echo base_url(); ?>;
            $.ajax({

                url:base+"/afcks/search_course";//also try "<?php echo base_url(); ?>/afcks/search_course" i dont think it's correct.
                type:"POST",
                dataType:"json",
                data:req,
                success:
                function(data)
                {
                   var responseData = $.parseJSON(data);//convert string to json, i know you datatype is set to 'json' still want to cross check. 
                    var str='';
                    str+='<ul>';
                    $(function() {
                        $.each(responseData, function(i, item) {
                             str+='<li>'+item.course_name+'</li>';
                        });
                    })
                    str+='</ul>';
                    $('#course').html(str);
                }
            });
        });
    });
    </script>  
 </head>
 <body> 
<button> click me </button>
<div id="course"> </div>
</body>

希望這會成功!

更改

url:"<?php echo base_url(); ?>/afcks/course";

url:"<?php echo base_url(); ?>afcks/search_course";

var str='';'
str+='<ul>';

var str='<ul>';

for(var i = 0; i< data.length; i++)
{
    str+='<li>'+data.course+'</li>';
});

$.each(data,function()
{
    str+='<li>'+this.course_name+'</li>';
}

並刪除

data:req,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM