Вызывать функцию PHP из jQuery?

У меня есть PHP-функция на моем сайте, которая занимает пару секунд. Это держит всю страницу, которая мне не нужна.

Можно ли с jquery вызвать эту функцию PHP после загрузки страницы и отображения результатов в div? Также для отображения изображения загрузчика ajax до завершения функции PHP?

Я смотрю на jQuery.post, но не могу заставить его работать.

Помог ли кто-нибудь?

Спасибо

Ответы

Ответ 1

AJAX делает магию:

$(document).ready(function(

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

));

Ответ 2

Спасибо всем. Я взял бит каждого из ваших решений и сделал свой собственный.

Конечное рабочее решение:

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

Ответ 3

Да, это определенно возможно. Вам нужно иметь функцию php в отдельном php файле. Вот пример использования $.post:

$.post( 
    'yourphpscript.php', // location of your PHP скрипт
    { 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 script, просто эхо html, который вы хотите. Это простой пример, но это хорошее место для начала работы:

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

Ответ 4

Это именно то, для чего нужен ajax. См. Здесь:

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

В принципе, вы ajax/test.php и помещаете возвращаемый код HTML в элемент с идентификатором результата.

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

Конечно, вам нужно будет добавить функциональность, которая требует времени для нового php файла (или вызвать старый с параметром GET, который активирует только эту функцию).