Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Ответ ajax из php


Автор: supercelt 27.5.2012, 16:38
Здесь реализованы вкладки (Tabs на jquery). Переходим по ним, контент меняется. Была задача слелать что бы через каждые 30 сек обновлялся контент полностью, то есть тянем снова инфу с базы, разбиваем по вкладкам и выводим на экран 
Вот в этот слой id="ajax-reload" потом надо было аяксом подгрузить новые данные (сформированные вкладки). 

Есть код

Код

<!DOCTYPE html> 
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>123</title>
        <meta name="description" content="" />
        <meta name="keywords"    content="" />
        <link rel="stylesheet" type="text/css" href="css/style.css">    
        <link type="text/css" href="css/jquery-ui-1.8.18.custom.css" rel="stylesheet" />
      <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
        <script src="js/jquery-ui-1.8.18.custom.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        var j = jQuery.noConflict();
        j(function(){
        j("#tabs").tabs();
        j("#tabs").tabs({
        event: "click",
        selected: 0
        });
            setInterval(function(){
                j.ajax({
                url: "info.php",
                cache: false,
                    beforeSend: function() {
                    j('#ajax-reload').html('Получаем контент');
                    },
                    success: function(resp){
                    j("#ajax-reload").html(resp);
                    }
                });

            }, 30000); 
        });    
        </script>
    </head>
    <body>
    <div class="wrap"> 
                <div id="ajax-reload" class="info-wrap">
                    <?php require_once('info.php'); ?>
                </div>    
    </div>
    </body>
</html>    


info.php
Код


<?php
$out = '
<div class="column-wrap">
<div id="tabs"><ul><li><a href="#tabs-1">л</a></li><li><a href="#tabs-2">л3</a></li></ul></div>
<div id="tabs-1">content1</div>
<div id="tabs-2">content1</div>
</div>';
echo $out;
?>


заходим на страницу, всё отображается нормально, 2 вкладки. Проходит 30 сек, контент загрузился, но поплыл. ЦСС который отвечает за стиль текста сработал норм, а цсс который отвечал
за вкладки не работает. Он как буд-то теряется, хотя в исходном коде он есть. Получается вобщем всё что приходит с аякса,стили слетают(для вкладок). В данном примере рушаться стили из /jquery-ui-1.8.18.custom.css (при ответе из аякса), в то время как
 css/style.css работает (в ответе из аякса).
 
 Есть идея решения. Вот как сделать что бы в пхп не надо было делать echo. А например вернуть массив, где его уже разбивать потом. Или ещё какие есть варианты?
 Спасибо

Добавлено через 14 минут и 18 секунд
решено. Нужно было добавить
Код

 j("#tabs").tabs();
        j("#tabs").tabs({
        event: "click",
        selected: 0
        });


В ответ аякса

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)