2011-08-23 56 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;}); 
});