2012-02-21 70 views
0

做到這一點查詢,這是控制器方法我怎樣才能笨

public function ajaxLoad() 
{ 
    $data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC"); 
    $data['content'] = $this->load->view('item', $data, true); 
    $data = json_encode($data); 
    echo $data; 
} 

,這是調用AJAX

var tempScrollTop, currentScrollTop = 0; 
$(document).scroll(function(){ 

currentScrollTop = $(document).scrollTop(); 

if (tempScrollTop < currentScrollTop) 
{ 
    var result = currentScrollTop % 100; 
    if(result == 0) 
    { 
     $.ajax({ 
      url: "ajax/load", 
      type: "POST", 
      success: function(res){ 

      $("#content").html(res); 

      } 
     }); 
    } 
} 
else if (tempScrollTop > currentScrollTop) 
{ 
    var result = currentScrollTop % 100; 
    if(result == 0) 
    { 
     $("#content").text("Вверх запрос " + result); 
    } 
} 

tempScrollTop = currentScrollTop; 
}) 

的問題,我認爲我無法得到的部分JS一個頁面與查詢內容,然後json_encode轉移到JavaScript,如果我刪除

$data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC"); 

和將其更改爲

$data['content'] = $this->load->view('item', null, true); 

因此如果沒有$ data對象,它就OK了。

那麼它自帶空,但我需要的數據庫行中的內容顯示

我怎樣才能解決這個問題?

和echo $ data; - 它只是將數據傳輸到js ??的方法,我試圖返回$ data ;,但那不起作用:(

並且主要的問題是PHP使用foreach函數生成頁面通過循環生成記錄,但如果我把這些記錄之一與ajax將部分變量內部的變量成爲數據庫查詢的值??,或者我需要設置值與js ??

我對此感到困惑,對不起,如果我錯了,你能幫幫我嗎?

所以這是如何通過網頁加載時看起來由PHP生成的頁面:

<? $i = 1 ?> 
<? foreach($query->result() as $q): ?> 



<? 
$milliseconds = $q->end; 
//echo $dd; 
//echo time(); 
/* 
$year = date('y', $t); 
$month = date('m', $t); 
$day = date('d', $t); 
$hour = date('h', $t); 
$minute = date('i', $t); 
$second = date('s', $t); 
*/ 
$d = new Datecalc; 
$begin = date("Y-m-d H:i:s"); 
$end = date($q->end); 
#$date = $d->dateDiff($begin , $end); 
//$begin = strtotime($begin); 
//$end = strtotime($q->end); 
$d->dateDiff($begin, $end); 
//echo $d->day; 

$desc = substr($q->desc, 0, 225); 
if(strlen($desc) > 180) 
{ 
    $desc = $desc."..."; 
} 
?> 
<input type="hidden" value="<?= $milliseconds ?>" id="milliseconds_<?= $q->id ?>" /> 
<div class="item" id="item_<?= $q->id ?>"> 
     <? if(!empty($_SESSION['role']) && $_SESSION['role'] == 'admin'): ?> 
     <div class="admin_delete"> 
     <a href="<?= base_url() ?>delete/<?= $q->id ?>"><?= img('css/img/admin_delete.png'); ?></a> 
     </div> 

     <? endif; ?> 
    <div class="desc"> 
    <span class="discount">Скидка <?= $q->discount ?>%</span> 
    <span class="desc"><?= $desc ?></span> 
    </div> 
    <div class="item_pic"> 
    <? $attr = array('src' => $q->image, 
    'id' => 'item_pic', 
    'class' => 'item_pic') ?> 
    <?= img($attr) ?> 
    </div> 
    <div class="menu_3"> 
     <ul class="menu_3"> 
      <li class="timer"> 
      <? $attr = array('src' => 'css/img/time.png', 
      'class' => 'time') ?> 
      <?= img($attr) ?> 
      <span id="days_<?= $q->id?>"><?= $d->day ?></span>д. 
      <span id="hours_<?= $q->id?>"><?= $d->hour ?></span> : 
      <span id="minutes_<?= $q->id?>"><?= $d->min ?></span> : 
      <span id="seconds_<?= $q->id?>"><?= $d->sec ?></span> 
      </li> 
      <li class="price"> 
      <?= $q->price ?>с. 
      </li> 
      <li class="buy"> 
      <div class="small"> 
      99 
      </div> 
      <a href="<?= base_url() ?>buy/<?= $q->id ?>"> 
      <?= img('css/img/kupit.png') ?> 
      </li> 
      <li class="item_arrow"> 
      <?= img('css/img/item_arrow.png') ?> 
      <? if($i % 2 == 0): ?> 
       <ul class="submenu2"> 
       <? else: ?> 
       <ul class="submenu2"> 
      <? endif; ?> 
        <li> 
        <a href="<?= base_url() ?>show/<?= $q->id ?>"> 
        Подробнее 
        </a> 
        </li> 
        <li> 
        <a href="<?= base_url() ?>how" style="color: #fef102;">Как это работает</a> 
        </li> 
        <li style="border-bottom: none;"> 
        <a href="">Рассказать друзьям</a> 
        </li> 
        <li style="border-bottom: none;"> 
        <a href=""><?= img('css/img/namba.png') ?></a> 
        <a href=""><?= img('css/img/mail_ru.png') ?></a> 
        <a href=""><?= img('css/img/odnoklassniki.png') ?></a> 
        <a href=""><?= img('css/img/vkontakte.png') ?></a> 
        <a href=""><?= img('css/img/facebook.png') ?></a> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </div> 
    </div> 
<? $i++; ?> 
<? endforeach; ?> 
    <div class="clear"></div> 

我不知道如何通過AJAX把記錄單獨gradualy當用戶向下滾動

回答

1

嘗試改寫這兩條線

$data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC"); 
$data['content'] = $this->load->view('item', $data, true); 

$db_data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC"); 
$data['content'] = $this->load->view('item', $db_data, true); 

正因爲如此,你作爲JSON輸出的一部分,發送來自DB的查詢響應(在$ data數組中)。然後用

echo json_encode($data); 
+0

非常感謝你FOT這個問題的答案替換最後兩行! – 2012-02-21 13:41:01

+0

請考慮upvoting的答案,如果它是有用的:) – 2012-02-21 13:42:13

+0

我的名譽不允許我現在投票 – 2012-02-21 14:30:23