Php 同时使用两个ajax函数?不起作用

Php 同时使用两个ajax函数?不起作用,php,ajax,mootools,Php,Ajax,Mootools,我有一个简单的AJAX脚本,它假设调用一个PHP文件并返回数据 window.addEvent('domready', function() { $('dbform').addEvent('submit', function(e) { new Event(e).stop(); var intervalId =setInterval(function() { var Ajax2 = new Request({

我有一个简单的AJAX脚本,它假设调用一个PHP文件并返回数据

window.addEvent('domready', function() {
    $('dbform').addEvent('submit', function(e) {
        new Event(e).stop();
        var intervalId =setInterval(function() 
        {
            var Ajax2 = new Request({
                url: '/tools/getdata.php',
                method: 'post',
                data: 'read=true',
                onComplete: function(response)
                {
                    $('results').set('html', response);
                }
            }).send();
        },1000);

        var postString = 'subbutton=' + $('subbutton').value;
        var Ajax = new Request({
            url: '/tools/getdata.php',
            method: 'post',
            data: postString,
            onRequest: function()
            {
                $('message').set('text', 'loading...');
            },
            onComplete: function(response)
            {
                $('message').set('text','completed');
                clearInterval(intervalId);
            },
            onFailure: function() 
            {
                $('message').set('text', 'ajax failed');
            }
        }).send();
    });
});
它正在提交的文件也是

$object= new compare();
if(isset($_POST['subbutton'])=='Run')
{
    // This take about 5 minutes to complete
    $run=$object->do_compare();
}

if(isset($_POST['read'])=='true')
{
    /// in the mean time, the first ajax function is suppose to return data from here..while
    // the do_compare() function finish.
    // the problem is that it only return it once the do_compare() finish
    /// 
    echo 'read==true';
}
该脚本工作正常,当Ajax请求每秒钟检查一次文件时,它不会从
$\u POST['read']
返回任何内容,直到
$run=$object->do_compare()已完成


为什么会这样?我试图实现的是,一个Ajax函数从do_compare函数获取数据,另一个Ajax函数也从getdata.php文件独立获取数据。

问题在于:

if(isset($_POST['subbutton'])=='Run')
isset返回布尔值true或false,因此如果设置了
$\u POST['subbutton']
,它将返回true,这是由于php的弱类型系统
true=='Run'
,因为
'Run'
计算结果为true。使用

if(isset($_POST['subbutton']) && $_POST['subbutton'] === 'Run')


您是否在PHP AJAX处理程序中使用会话?如果是这样,您的会话文件可能已被阻止


第二:Javascript在浏览器中是内部单线程的(有关更多信息,请参见谷歌)。

isset()
返回
(bool)true
(bool)false
尝试
if(isset($\u POST['read'])&&$\u POST['read']='true')
@Christoph如果您愿意,我刚刚更新了一个输出图像。这个javascript让我很困惑。它看起来像是原始JS、jQuery和Prototype的组合。您使用的是什么库?控制台上说什么?您看到那里的请求了吗?@Sergio是的,我确实看到了那里的请求,请查看我包含的图片。感谢您的回答,但是,它没有解决问题,它仍在等待第一个ajax完成:(我猜这是因为http不允许更改请求的顺序。这意味着它必须在请求2之前回答请求1。但这只意味着每个连接。默认情况下,浏览器使用2个连接,因此至少有一个连接应该提前完成。对不起,我不知道。Javascript是独立的单线程,这就是为什么ajax实际上是异步的。)ous(默认情况下)。这应该不是问题。但是会话文件听起来不错。也许推出自己的会话系统会有所帮助。
if(isset($_POST['read']) && $_POST['read'] === 'true')