У меня есть функция PHP на моем сайте, выполнение которой занимает пару секунд. Это держит всю страницу, которую я не хочу.
Можно ли с помощью jquery вызвать эту функцию PHP после загрузки страницы и отобразить результаты в div? Кроме того, чтобы отобразить изображение загрузчика ajax до тех пор, пока не будет завершена функция PHP?
Я смотрел на jQuery.post, но не могу заставить его работать.
Может ли кто-нибудь помочь?
Спасибо
AJAX творит чудеса:
$(document).ready(function(
$.ajax({ url: 'script.php?argument=value&foo=bar' });
));
Это именно то, для чего нужен ajax. См. Здесь:
По сути, вы используете ajax / test.php и помещаете возвращенный HTML-код в элемент, который имеет идентификатор результата.
$('#result').load('ajax/test.php');
Конечно, вам нужно будет перенести функции, требующие времени, в новый файл php (или вызвать старый с параметром GET, который активирует только эту функцию).
Всем спасибо. Я взял кусочки каждого из ваших решений и сделал свое собственное.
Окончательное рабочее решение:
<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>
Да, это определенно возможно. Вам понадобится функция 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>';
?>