从jQuery调用PHP函数?

时间:2010-08-23 15:01:56

标签: php jquery ajax

我的网站上有一个PHP函数,需要几秒钟才能完成。这保持了我不想要的整个页面。

使用jquery可以在页面加载后调用此PHP函数并在div中显示结果吗?还要在PHP函数完成之前显示ajax加载程序图像?

我一直在关注jQuery.post,但似乎无法让它工作。

有人能帮忙吗?

谢谢

4 个答案:

答案 0 :(得分:18)

AJAX的神奇之处在于:

$(document).ready(function(

    $.ajax({ url: 'script.php?argument=value&foo=bar' });

));

答案 1 :(得分:10)

谢谢大家。我拿走了你的每一个解决方案,然后自己做了。

最终的工作解决方案是:

<script type="text/javascript">
    $(document).ready(function(){
        $.ajax({
            url: '<?php bloginfo('template_url'); ?>/functions/twitter.php',
            data: "tweets=<?php echo $ct_tweets; ?>&account=<?php echo $ct_twitter; ?>",
            success: function(data) {
                $('#twitter-loader').remove();
                $('#twitter-container').html(data);
            }
        });
   });
</script>

答案 2 :(得分:9)

是的,这绝对是可能的。你需要在一个单独的php文件中使用php函数。以下是使用$ .post:

的示例
$.post( 
    'yourphpscript.php', // location of your php script
    { name: "bob", user_id: 1234 }, // any data you want to send to the script
    function( data ){  // a function to deal with the returned information

        $( 'body ').append( data );

    });

然后,在你的php脚本中,只需回显你想要的html。这是一个简单的例子,但是一个开始的好地方:

<?php
    echo '<div id="test">Hello, World!</div>';
?>

答案 3 :(得分:3)

这正是ajax的用途。见这里:

http://api.jquery.com/load/

基本上,你是ajax / test.php并将返回的HTML代码放到具有结果id的元素中。

$('#result').load('ajax/test.php');

当然,您需要将需要时间的功能放到新的php文件中(或者使用GET参数调用旧文件,该参数仅激活该功能)。