Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将变量从Jquery$(document).ready函数传递到php脚本_Php_Jquery_Ajax_Scroll - Fatal编程技术网

如何将变量从Jquery$(document).ready函数传递到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);

我正在建立一个聊天室。我有一个Jquery工作代码,它每秒调用logs.php并刷新聊天记录

$(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函数