2010-08-23 154 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>