2013-01-09 39 views
1

EDITS:我已經消除了必須向控制器指出URL並使用url本身的變量var路徑,現在路徑錯誤消失了,但沒有獲取數據。文件通信中的某些內容未被傳遞。在Codeigniter上滾動時加載

我想要做的是在滾動時,讓頁面從服務器加載數據。爲此,我使用了一個單獨的jquery文件,一個視圖,控制器和模型。

JQUERY FILE。你會看到它是非常簡單的:

$(document).ready(function() { 

    var pageLoaded = 1; //this basically says that we are on page 1 of the results 

     $(window).scroll(function() 
     { 

     if($(window).scrollTop() == $(document).height() - $(window).height()) 
     { 
     pageLoaded = pageLoaded+1; //when this condition has met, increase the pageLoaded so that I can tell php to load in data for page 2/3/4/5, etc, etc 

/*// below I send the data to the controller named Home its function loadData gets a variable named id_load with value = to pageLoaded*/ 

     $.get('home/loadData', {'id_load':pageLoaded}, 
      function(data) 
      { 
       if (data != "") 
       { 
       $('#submissions').append(data); 
       } 
      } 
     ); 
     //alert(pageLoaded); 
     } 
     } 
    ); 


    }); 

控制器:

<?php if (! defined('BASEPATH')) exit ('No direct script access allowed'); 


class Home extends CI_Controller 
{ 
    function __construct() 
    { 

     parent::__construct(); 

     $this->load->model('load_model'); 
     $this->output->enable_profiler(TRUE); 

    } 


    public function loadData() 
    { 
     $pageNumber = $this->input->get('id_load'); 
     $this->load_model->loadPage($pageNumber); 

    } 


    public function index() 
    { 
     $data = array('title' =>'homepage', 'main_content' =>'home_v'); 
     $this->load->view('template', $data); 

    } 



} 

,並因爲它得到新的價值模型應該顯示的內容,同時ü滾動:

<?php 


class Load_model extends CI_Model { 



    public function loadPage ($pagenumber) 

    { 

     $sql = $this->db->where('id_load', $pagenumber)->get('data'); 

     $cadena = ""; 

     foreach($sql->result_array() as $reg) 
     { 
     $cadena = $reg['content'];  

     } 

     echo $cadena; 


    } 

} 
+1

如果它是一個.js文件..它將如何能夠運行PHP代碼'<?php代碼?>'...認爲ABT那??? – bipen

+0

@bipen這正是發生了什麼:) – Khez

+0

是的,我在我的編輯中消除了。我試圖放置正確的路徑,但我沒有得到它:它是localhost/html5ci/index.php/home /在我的URL框中, – user1961282

回答

0

嘗試。 。

在你的標題<head>把一個JavaScript vararia與base_url()頂部..

這裏

HTML

<head> 
    <script> 
    var base_url=<?php echo base_url()?>; 
    </script> 
.... 
</head> 

jQuery的

var path = base_url + 'index.php'; 
+0

是的,bipen你是正確的謝謝你,這是另一種正確的方式來完成這條路。我還將它原始包含在js文件中。現在代碼工作,除了一個有趣的事情: – user1961282

+0

有趣的是,當進入我的網頁,因爲沒有足夠的內容,滾動器沒有被激活。我必須有足夠的內容才能讓我的頁面上登陸一個滾輪。我想有兩種方法,一種是在着陸時加載一些數據,另一種是從一開始就使用一些JavaScript來告訴「我想要一個滾動條」。你怎麼看 ? – user1961282

+0

好的,這是..很好..我現在可以得到你.. :) :) – bipen

1

我覺得這裏的問題是你沒有定義或包括URL 。要做到這一點的最佳做法是,在標題部分中定義或包含基本URL。將下列行標記到標題

var base_url =;

然後在你想要的任何軟件中使用這個base_url。