如何将变量从Jquery$(document).ready函数传递到php脚本
我正在建立一个聊天室。我有一个Jquery工作代码,它每秒调用logs.php并刷新聊天记录如何将变量从Jquery$(document).ready函数传递到php脚本,php,jquery,ajax,scroll,Php,Jquery,Ajax,Scroll,我正在建立一个聊天室。我有一个Jquery工作代码,它每秒调用logs.php并刷新聊天记录 $(document).ready( function(e) { $.ajaxSetup({cache:false}); setInterval(function() { $('#chatlogs').load('logs.php'); updateScroll(); }, 1000);
$(document).ready(
function(e) {
$.ajaxSetup({cache:false});
setInterval(function() {
$('#chatlogs').load('logs.php');
updateScroll();
}, 1000);
}
);
如您所见,我的页面上的JS函数
updateScroll
也被调用Updatescroll
创建一个变量,我想将其传递给logs.php
,有什么方法可以做到这一点吗?换句话说,updatescroll
基本上每秒钟都会检查用户是否已滚动到聊天室的顶部。如果是这样的话,我会告诉logs.php再加载10条消息。但是为了做到这一点,我必须有一些东西从updatescroll
传递到Jquery函数,从而传递到logs.php
。你明白了吗?首先,当谈到ajax时,我建议使用一个窗口。setTimeout
,当异步运行时,间隔可能会变得棘手(如果一个调用挂起,则可能会导致对同一脚本的多个调用)
更像是:
(function($){
var update_messages = function(){
var count = updateScroll();
$('#chatlogs').load('logs.php?count='+count, function(){
window.setTimeout(update_messages, 1000);
});
}
$(document).ready(function(){
$.ajaxSetup({cache:false});
update_messages();
});
})(jQuery);
然后在PHP脚本中,可以通过$\u GET['count']
获得“count”
编辑:您可以看到一个匿名函数正在作为第二个参数发送以加载,这将在AJAX调用完成后调用,因此我们可以确保一次只运行其中的一个您是否正在尝试实现“无限滚动”功能?有很多插件可以做到这一点。嗨,+count可以工作,但有一件事很重要:我不想(不能)在Jquery代码中定义count变量。我想在我调用的JS updatescroll函数中定义它。我尝试在那里定义它,但它不会将其值传递到'logs.php?count='+count,明白我的意思吗?很好,在示例中,我只是假设您可以从updateScroll函数返回计数。也许您也应该在这里发布updateScroll函数