2012-02-07 2 views
0

Я ищу способ использовать JQuery с помощью сценария index.php, который построен бит за битом, используя механизм шаблонов, например, так:Автоматическое обновление контента (с помощью механизма шаблонов) с помощью JQuery

<?php 

global $template; 

page_header(); // Calls and displays header.html 
$template->load('body', 'index.html'); // Loads index.html and calls it 'body' 
    *Code that assigns values to variables in index.html* 
$template->display('body'); // Displays index.html 
page_footer(); // Calls and displays footer.html 
?> 

где каждая строка делает так, как прокомментировал.

Я хочу построить функцию с помощью jQuery, которая автоматически обновляет index.php, но только часть тела. Я не могу найти любую документацию на это делать, но я смотрел на следующий код:

function update() { 
    $("#notice_div").html('Loading..'); 
    $.ajax({ 
    type: 'GET', 
    url: 'index.php', 
    timeout: 2000, 
    success: function(data) { 
     $("#current_game").html(data); 
     $("#notice_div").html(''); 
     window.setTimeout(update, 10000); 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     $("#notice_div").html('Timeout contacting server..'); 
     window.setTimeout(update, 60000); 
    } 
}); 
}; 

Но это становится действительно грязный, когда это в заголовке, так как он вызывает целую index.php страницу, вставляет заголовок, поэтому у нас есть заголовок в заголовке. Какие-либо предложения?

ответ

0

Простейшим решением было бы отправить переменную get;

function update() { 
    $("#notice_div").html('Loading..'); 
    $.ajax({ 
     type: 'GET', 
     url: 'index.php', 
     data: 'ajax=true', 
    ... 
} 

и в файле PHP сделать что-то вроде:

if($_GET['ajax'] == 'true') { 
    // don't print header, but other stuff 
} else { 
    // print header 
} 

если вы используете рамки может иметь некоторые интеллектуальные функции для автоматического определения, если это запрос xhttp или обычный запрос. Обычно это делается путем изучения заголовков

+0

Спасибо, что ответили. Вы знаете, как поддерживать выбор переключателя при обновлении? – dplanet

+0

ну, в основном вам придется проверить его еще раз. то есть. отправив форму с обновлением (используйте jQuery.post()) и вставьте html с php или после обновления используйте jquery, чтобы проверить его снова. Я думаю, первый был бы самым простым – giorgio

+0

Спасибо, что работает. Тем не менее, одна мелочь, если я изменил переключатель, когда страница уже начала автообновление, он вернет выделение так, как это было до того, как страница начала автовосстановление. Это звучит сложно. – dplanet

Смежные вопросы