2010-08-23 159 views
13

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

jquery在页面加载并在div中显示结果后调用这个PHP函数是可能的吗?还要显示一个ajax加载器图像,直到PHP函数完成?

我一直在看jQuery.post,但似乎无法得到它的工作。

有人能帮忙吗?

谢谢

+1

这是可能使用AJAX,但你或许应该发布一些你的代码给我们的正是你想达到什么更好的主意。 – 2010-08-23 15:04:16

回答

16

AJAX确实神奇:

$(document).ready(function(

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

)); 
2

这正是ajax的用途。在这里看到:

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

基本上,你AJAX/test.php的,并把返回的HTML代码,其中有结果ID的元素。

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

当然,你将需要把其需要时间来一个新的PHP文件的功能(或者叫旧有GET参数,将只激活该功能)。

7

是的,这是绝对有可能的。您需要将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>'; 
?> 
+2

如果php函数在包含不同函数的php文件中,我们该怎么做? – WantIt 2015-08-24 04:09:01

9

感谢所有。我采取了你的每一个解决方案,并做出了我自己的一些。

最后工作的解决方案是:

<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>