2011-08-23 91 views
1

我有一個數據庫表中最近17個條目的列表,並且希望使用jquery/ajax有一個下一個按鈕,當你點擊它時加載下17個條目。 它將17變量傳遞給第一次正常工作的.load(稍後用作mysql限制),但是我嘗試用17增加啓動變量,以便下次單擊時將它傳遞給34。加載(所以它再次加載17),但這不起作用,它只是在第二,第三等加載相同的17。點擊(所以沒有改變)。閱讀其他問題,這應該是使用全局變量的正確方法,方法是將其設置爲var,並在函數內部不使用var。jquery點擊功能裏面沒有改變的變量

<script> 
var start = 17; 
var loadUrl = '<?php echo site_url('welcome/battles'); ?>'; 
$("#latestbattlesnext").click(function() { 
    $('#left').load(loadUrl + "/" + start); 
    start = start + 17; 
}); 
</script> 
+2

是您'click'功能重新加載頁面和重置'start'變種? –

+1

我們可以看到返回列表的服務器端腳本嗎? – yoda

+0

控制檯中的任何錯誤? – AlienWebguy

回答

0

您的網站正在刷新任何這些負載?無論在<script>標記中,當它加載的頁面被刷新時(明顯),它都將被刷新。

就我所知,這是正確的做法。

也許仔細檢查這一行:

$('#left').load(loadUrl + "/" + start); 

爲了確保它不會在頁面上重新加載任何<script>的。

0

語法是正確的,你不是在.load函數內設置啓動var嗎?

嘗試更改給定腳本內的開始名稱。

0

嘗試此方法:

var start = 17; 
var loadUrl = '<?php echo site_url('welcome/battles'); ?>'; 
$("#latestbattlesnext").click(function() { 
    $.ajax({ 
     url: loadUrl + '/' + start, 
     type: 'get', 
     dataType: 'html', 
     success: function(data){ 
      $('#left').html(data); 
      start = start + 17; 
     }, 
     error(jqXHR, textStatus, errorThrown){ 
      console.log(textStatus + ' -- ' + errorThrown); 
     } 
    });  
}); 
+0

我得到同樣的結果,但添加錯誤的事情後,我得到這個:[16:32:16.687]失蹤:屬性ID後 – Sune

+0

你是'json_encode()'你的數據或只是' PHP頁面? – AlienWebguy

+0

我在呼應它 – Sune

0

增量開始變量調用加載或在回調之前任一。

var start = 17; 
var loadUrl = '<?php echo site_url('welcome/battles'); ?>'; 
$("#latestbattlesnext").click(function() { 
    start = start + 17; 
    $('#left').load(loadUrl + "/" + start); 
}); 

或者

var start = 17; 
var loadUrl = '<?php echo site_url('welcome/battles'); ?>'; 
$("#latestbattlesnext").click(function() { 
    $('#left').load(loadUrl + "/" + start, function() { 
     start = start + 17; 
    }); 
}); 
+0

嘗試過這些,但我得到了相同的結果 – Sune

+0

第二種方法爲我工作。回調是否成功?你看到新的html被加載?你是否可能重新初始化啓動變量?請在原始問題中張貼任何周圍的代碼。我懷疑別的是你的問題的原因。下面是第二種方法的例子。 http://jsfiddle.net/craigm/hkSPZ/ –

0

你可以嘗試使用負載回調

var start = 17; 
var loadUrl = '<?php echo site_url('welcome/battles'); ?>'; 
$("#latestbattlesnext").click(function() { 
    $('#left').load(loadUrl + "/" + start,function(){start = start + 17;}); 
});