2012-03-29 1 views
1

Цель: Я пытаюсь обновить содержимое внутри div, чтобы, если пользователь вошел в систему, страница изменяется динамически.Как добавить контент из php-файла в div с jQuery mobile

Прогресс: Моя первая попытка состояла в использовании $("#tab_b").load("php/tabs.php #tab_b");, но это не обновляло DOM, поэтому стиль jquery не применялся. Затем я попытался добавить функцию .trigger ('create') $("#tab_b").trigger('create'); Это привело к тому, что стиль включался и выключался на долю секунды. Тогда я попробовал функцию .append(), которая, кажется, работает, я использую следующий код, чтобы проверить функцию, и это работает:

$("#tab_b").html(''); 
$("#tab_b").append("<button type='submit' data-theme='a'>Test button</button>").trigger('create'); 

единственная проблема, у меня есть это извлечение содержимого из файла PHP и затем добавьте его в div.

Материалы, которые должны быть обновлены: "#tab_b"

<div id="tab_b" class="content_div">  
    <?php 

    if(!isLoggedIn()) 
    { 
     ... 
    } 
    else 
    { 
     echo(" 
     <button type='submit' data-theme='a' id='logout' >Logout</button> 
     "); 
    } 
    ?> 
</div> 

Любая идея о том, как сделать это? Также приветствуются любые предложения по улучшениям, я начинающий программист.

Этот вопрос представляет собой попытку решить большую проблему, описанную в моей другой теме:

jQuery Mobile does not apply styles after dynamically loading content

+0

Когда вы вызываете метод триггера ('create')? –

+0

Я связываю его сразу после $ (# tab_b) .append (..) .trigger ('create'); – Enrico

+0

Думаю, вам нужно обновить страницу после загрузки страницы, посмотрите в API событий: http://jquerymobile.com/demos/1.1.0-rc.1/docs/api/events.html –

ответ

1

это может работать:

$('#tab_b').live('pageinit',function(event){ 
    alert('This page was just enhanced by jQuery Mobile!'); 
}); 

Я хотел бы посмотреть в API событий

+0

Спасибо за ваш ответ но я не уверен, как это перезагружает содержимое div? Я прочитал файл doc, но я не получаю от него ничего мудрее. Не могли бы вы привести пример? благодаря – Enrico

0

Я обнаружил, что вы можете получить данные с помощью функции $ .ajax. Это возвращает всю страницу. Моим решением было переместить содержимое, которое необходимо обновить, на новую страницу php, tab_b.php и загрузить его оттуда. Не уверен, что это лучшее решение, но оно работает.

$.ajax({ 
    url: 'php/tab_b.php', 
    success: function (data) { 
      $("#tab_b").html(''); 
      $("#tab_b").append(data).trigger('create'); 
    } 
});