web-dev-qa-db-ja.com

PHP jQueryから関数を呼び出しますか?

サイトにPHP関数があり、完了するまでに数秒かかります。これは、私が望まないページ全体を保持します。

Jqueryを使用して、ページが読み込まれた後にこのPHP関数を呼び出し、divに結果を表示することは可能でしょうか? PHP関数が完了するまでajaxローダーイメージを表示するには?

私はjQuery.postを見てきましたが、機能させることができないようです。

誰かが助けることができますか?

ありがとうございました

15
Brigante

AJAXは魔法をします:

$(document).ready(function(

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

));
18
Otar

皆さんありがとう。私はあなたのソリューションのそれぞれを少しずつ取り、自分で作りました。

最終的な作業ソリューションは次のとおりです。

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

はい、これは間違いなく可能です。 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>';
?>
9
hookedonwinter

これがまさにアヤックスの目的です。こちらをご覧ください:

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

基本的に、ajax/test.phpを実行し、返されたHTMLコードを結果IDを持つ要素に配置します。

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

もちろん、時間がかかる機能を新しいphpファイルに配置する必要があります(または、その機能のみをアクティブにするGETパラメーターで古いファイルを呼び出します)。

3
Palantir