使用jquery显示div并从ape服务器检索数据

时间:2012-07-24 10:01:26

标签: php jquery post ape

我的问题是:如何制作一个在屏幕右下角可见的div,持续10秒? 这个div会触发由php脚本触发的ape-server内联推送。 我想尝试使用php将数据发布到ape服务器,然后使用带有显示x秒的div的jquery回显此数据。我毫不怀疑我将如何开始,或者我怎么能让它发挥作用!

1 个答案:

答案 0 :(得分:0)

你在谈论两件不同的事情,我想......

你想要一个使用php的服务器端函数(然后使用jQuery来显示/隐藏div),或者使用jQuery的AJAX请求。由于您在执行所有这些操作时似乎不想重新加载页面,因此我会使用AJAX选项。

使用AJAX执行此操作的示例方法如下:

您需要运行一项服务,您可以将数据发布到该服务中,以便在页面内显示响应。这可以用php编码。

然后使用jQuery,您可以执行以下操作:

$(function(){
    // use jQuery's .post() shorthand method to post your data to your php script
    $.post('myService.php', function(data){
        // do something with whatever is returned by your php function... 
        // in this instance, show a div containing the response 
        // (assuming the response is html)
        $('#responseDiv').empty().append(data).fadeIn(500, function(){
            // in this callback (which runs once the fadeIn animation is complete), 
            // we will tell #responseDiv to disappear after 10 seconds
            setTimeout(function(){
                $('#responseDiv').fadeOut(500);
            }, 10000);
        });
    });
});

我希望这有助于回答你的问题。

//编辑:在回复您的评论时,似乎APE文档向您展示了如何实现这一点 -

var client = new APE.Client();

client.load();

client.core.join('testChannel');

client.request.send('foo', {ping: 'ho hey'});

client.onRaw('bar', function(raw, pipe) {
    console.log('echo : ' + raw.data.echo);
    console.log('Receiving : ' + raw.data.hello);
});

client.request.send()方法将数据发布到服务器,然后client.onRaw()方法是您处理响应的方式。在这种情况下,它只是登出到控制台,但原则是声音。这个onRaw正在寻找一种带有'bar'类型的原始产品。

我建议您仔细阅读APE文档。我读了大约5分钟并且到目前为止,但并不是真正的APE专家,如果不花更多的时间研究,我就不能再进一步了。

//编辑2

如果只是将消息显示在div中然后消失这是你的问题,那么我的原始答案的一部分也是如此:

    $('#responseDiv').empty().append(data).fadeIn(500, function(){
        // in this callback (which runs once the fadeIn animation is complete), 
        // we will tell #responseDiv to disappear after 10 seconds
        setTimeout(function(){
            $('#responseDiv').fadeOut(500);
        }, 10000);
    });

该部分脚本会将数据内容附加到div,淡入,然后在10秒后将其淡出。您需要做的就是使用来自APE而不是该数据变量的响应进行排序(我认为将data替换为raw.data)。

如果您需要动态创建div,那么您可以执行以下操作:

    // your css would need to set .response to be display: none
    $('body').append('<div class="response">'+raw.data+'</div>');
    $('.response').fadeIn(500, function(){
        // in this callback (which runs once the fadeIn animation is complete), 
        // we will tell .response to disappear after 10 seconds
        setTimeout(function(){
            $('.response').fadeOut(500);
        }, 10000);
    });

这对您的问题有帮助吗?