Поддержка Проблемы и решения Загрузка разных php скриптов без перезагрузки страницы

  • Народ, ну помогите разобраться, мозг взрывается уже.
    Имею скрипт:

    
    <script>
    function showContent(link) { 
            var cont = document.getElementById('content-single'); 
            var loading = document.getElementById('loading'); 
            cont.innerHTML = loading.innerHTML;   
            var http = createRequestObject(); 
            if( http )  
            { http.open('get', link); 
                http.onreadystatechange = function ()  
                {   if(http.readyState == 4)  
                    {   cont.innerHTML = http.responseText;  }    } 
                http.send(null);  } 
            else  
            {  document.location = link;   }   } 
        // ajax объект
        function createRequestObject()  
        {  try { return new XMLHttpRequest() } 
            catch(e)  
            {  try { return new ActiveXObject('Msxml2.XMLHTTP') } 
                catch(e)  
                {   try { return new ActiveXObject('Microsoft.XMLHTTP') } 
                    catch(e) { return null; }   } } }
    </script>
    <span onClick="showContent('content-single-1.php')">Страница 1</span>
    <span onClick="showContent('content-single-2.php')">Страница 2</span>
    <!--//-->
    <div id="content-single">
        <!-- CONTENT -->
    </div> 
    <!--//-->
    <div id="loading" style="display: none"> 
        Идет загрузка... 
        </div> 
    <script>
         showContent('content-single-1.php') // страница по умолчанию
    </script>
    

    имею файл content-single-1.php, например:

    
    <div class="head-price-all">
          <div class="head-title"><h2><?php echo the_title(); ?></h2></div>
            <div class="head-prices">
              <div class="head-prices-tol"> 
                <div class="head-price1">
                <?php if ( in_category('33') ): ?>
                    <div class="bot-left"><div class="price1">Цена без отделки<br><span class="birk"><? echo get('price_without_finishing_sezon'); ?> руб.</span></div></div>
                <? elseif  ( in_category('34') ): ?>
                    <div class="bot-left"><div class="price1">Цена под усадку<br><span class="birk"><? echo get('price_house_shrinkage_sezon'); ?> руб.</span></div></div>
                <? elseif  ( in_category('35') ): ?>
                    <div class="bot-left"><div class="price1">Цена за каркасное исполнение<br><span class="birk"><? echo get('price_carcass_finishing_sezon'); ?> руб.</span></div></div>
                <? elseif  ( in_category('36') ): ?>
                    <div class="bot-left"><div class="price1">Цена за каркасное исполнение<br><span class="birk"><? echo get('price_carcass_bathhouse'); ?> руб.</span></div></div>
                <?php endif; ?>
                </div>
                <div class="head-price2">
                <?php if ( in_category('33') ): ?>
                    <div class="bot-left"><div class="price2">Цена с отделкой<br><span class="birk"><? echo get('price_with_finishing_sezon'); ?> руб.</span></div></div>
                <? elseif  ( in_category('34') ): ?>
                    <div class="bot-left"><div class="price2">Цена под ключ<br><span class="birk"><? echo get('price_finished_house_sezon'); ?> руб.</span></div></div>
                <? elseif  ( in_category('35') ): ?>
                    <div class="bot-left"><div class="price2">Цена за брусовое исполнение<br><span class="birk"><? echo get('price_beam_finishing_sezon'); ?> руб.</span></div></div>
                <? elseif  ( in_category('36') ): ?>
                    <div class="bot-left"><div class="price2">Цена за брусовое исполнение<br><span class="birk"><? echo get('price_beam_bathhouse'); ?> руб.</span></div></div>
                <?php endif; ?>     
                </div>
              </div>    
            </div>
        </div>
        <div class="flexslider">
            <ul class="slides">
                <li data-thumb="<?php echo wp_get_attachment_url(get_post_meta($post->ID, 'uploader_custom', 1)); ?>">
                    <img src="<?php echo wp_get_attachment_url(get_post_meta($post->ID, 'uploader_custom', 1)); ?>" />
                </li>
                <li data-thumb="<?php echo wp_get_attachment_url(get_post_meta($post->ID, 'uploader_custom1', 1)); ?>">
                    <img src="<?php echo wp_get_attachment_url(get_post_meta($post->ID, 'uploader_custom1', 1)); ?>" />
                </li>           
                <li data-thumb="<?php echo wp_get_attachment_url(get_post_meta($post->ID, 'uploader_custom2', 1)); ?>">
                    <img src="<?php echo wp_get_attachment_url(get_post_meta($post->ID, 'uploader_custom2', 1)); ?>" />
                </li>
            </ul>
        </div>  
        <div class="house-description">
            <div class="house-parametr">
                <div class="house-info-t">
                    <table>
                        <tbody>
                            <?php if ( in_category('33') ): ?>
                            <tr>
                                <td><span class="house-icon-area icon-area"></span>Площадь дома:</td>
                                <td class="area-info"><? echo get('area_house_carcass'); ?> м<sup>2</sup></td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-dimensions icon-size"></span>Габариты дома:</td>
                                <td class="size-info"><? echo get('dimensions_house_carcass'); ?> м</td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-floors icon-floors"></span>Количество этажей:</td>
                                <td class="floors-info"><? echo get('number_floors_carcass'); ?></td>
                            </tr>
                            <tr>
                                <td><span class="house-icon-rooms icon-rooms"></span>Количество комнат:</td>
                                <td class="rooms-info"><? echo get('number_rooms_carcass'); ?></td>
                            </tr>
                            <? elseif  ( in_category('34') ): ?>
                            <tr>
                                <td><span class="house-icon-area icon-area"></span>Площадь дома:</td>
                                <td class="area-info"><? echo get('area_house_beam'); ?> м<sup>2</sup></td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-dimensions icon-size"></span>Габариты дома:</td>
                                <td class="size-info"><? echo get('dimensions_house_beam'); ?> м</td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-floors icon-floors"></span>Количество этажей:</td>
                                <td class="floors-info"><? echo get('number_floors_beam'); ?></td>
                            </tr>
                            <tr>
                                <td><span class="house-icon-rooms icon-rooms"></span>Количество комнат:</td>
                                <td class="rooms-info"><? echo get('number_rooms_beam'); ?></td>
                            </tr>
                            <? elseif  ( in_category('35') ): ?>
                            <tr>
                                <td><span class="house-icon-area icon-area"></span>Площадь дома:</td>
                                <td class="area-info"><? echo get('area_house_individual'); ?> м<sup>2</sup></td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-dimensions icon-size"></span>Габариты дома:</td>
                                <td class="size-info"><? echo get('dimensions_house_individual'); ?> м</td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-floors icon-floors"></span>Количество этажей:</td>
                                <td class="floors-info"><? echo get('number_floors_individual'); ?></td>
                            </tr>
                            <tr>
                                <td><span class="house-icon-rooms icon-rooms"></span>Количество комнат:</td>
                                <td class="rooms-info"><? echo get('number_rooms_individual'); ?></td>
                            </tr>
                            <? elseif  ( in_category('36') ): ?>
                            <tr>
                                <td><span class="house-icon-area icon-area"></span>Площадь дома:</td>
                                <td class="area-info"><? echo get('area_bathhouse'); ?> м<sup>2</sup></td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-dimensions icon-size"></span>Габариты дома:</td>
                                <td class="size-info"><? echo get('dimensions_bathhouse'); ?> м</td>
                            </tr>   
                            <tr>
                                <td><span class="house-icon-floors icon-floors"></span>Количество этажей:</td>
                                <td class="floors-info"><? echo get('number_floors_bathhouse'); ?></td>
                            </tr>
                            <tr>
                                <td><span class="house-icon-rooms icon-rooms"></span>Количество помещений:</td>
                                <td class="rooms-info"><? echo get('bathhouse_rooms'); ?></td>
                            </tr>   
                            <?php endif; ?>
                        </tbody>    
                    </table>
                </div>
            </div>
            <div class="house-parametr-t">
                <div class="house-info-t">      
                    <table>
                        <tbody>
                            <tr>
                                <td><span class="icon-sevles"></span></td>
                                <td class="sevles-info">Качественный северный лес<br><span class="info-size">При строительстве деревянных домов мы используем северный лес.</span></td>
                            </tr>
                            <tr>
                                <td><span class="icon-svai"></span></td>
                                <td class="svai-info">Фундамент на винтовых сваях<br><span class="info-size">Данный тип основы характеризуется высокой степенью надежности и возможностью строить даже на участках с необычным рельефом и сложными грунтами.</span></td>
                            </tr>
                        </tbody>    
                    </table>
                </div>
            </div>  
            <div class="house-info-t">
                <div class="house-info-q">
                    Возможны рызные варианты отделки и комплектаций. Свяжитесь с нами и мы <span style="color:red;">бесплатно</span> сделаем перепланировку под ваши нужды.
                </div>  
            </div>
            <div class="banner-calc">
                <a href="#"><img src="/wp-content/themes/build-lite/images/banner_calc.png" alt="Рассчитать стоимость"></a>
            </div>
        </div>      
        <span class="hr-slider"><hr /></span>
        <div class="block-opis">
        <div class="title-opis">Технические характеристики</div>    
        <span class="hr-opis"><hr /></span>
        <div class="entry-content">
        <?php if ( in_category('33') ): ?>
            <?php $the_query = new WP_Query('p=380'); ?>
            <?php while  ($the_query->have_posts() ) : $the_query->the_post(); ?>
            <?php the_content(); ?>
            <?php edit_post_link(__('Редактировать')); ?>
            <?php endwhile; ?>
            <?php wp_reset_postdata();?>  
        <? elseif  ( in_category('34') ): ?>
            <?php $the_query = new WP_Query('p=384'); ?>
            <?php while  ($the_query->have_posts() ) : $the_query->the_post(); ?>
            <?php the_content(); ?>
            <?php edit_post_link(__('Редактировать')); ?>
            <?php endwhile; ?>
            <?php wp_reset_postdata();?>  
        <? elseif  ( in_category('36') ): ?>
            <?php $the_query = new WP_Query('p=387'); ?>
            <?php while  ($the_query->have_posts() ) : $the_query->the_post(); ?>
            <?php the_content(); ?>
            <?php edit_post_link(__('Редактировать')); ?>
            <?php endwhile; ?>
            <?php wp_reset_postdata();?>    
        <?php endif; ?>
            <?php the_content(); ?>       
        </div>
        </div><!-- .entry-content -->
    

    и файл content-single-2.php, в котором просто текст, типа бла бла бла.

    При загрузке страницы, код с content-single-1.php загружается ровно до <?php the_title(); ?> и всё. При загрузке с content-single-2.php все нормально, вижу своё бла бла.

    что еще куда прописать, чтобы ajax запрос стал обрабатывать штатные функции wordpress типа <?php the_title(); ?>?

    Если прописать в content-single-1.php это:

    
    require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
    

    начинают грузиться стили и разметка, но по прежнему не грузятся функции и скрипты! Пример можно посмотреть ТУТ

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • сколько статье лет то? я по поводу Microsoft.XMLHTTP.
    оно как бы только в IE должно работать, если не ошибаюсь.

    ajax нынче иначе используют.
    https://stackoverflow.com/questions/18656169/using-ajax-to-execute-php-code

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Загрузка разных php скриптов без перезагрузки страницы

    onClick="showContent('content-single-1.php')"

    Загружать надо не шаблоны напрямую в обход движка, а страницы, на которых эти шаблоны используются. Тогда не будет проблем с использованием функций WordPress.

    что еще куда прописать, чтобы ajax запрос стал обрабатывать штатные функции wordpress типа <?php the_title(); ?>?

    Стоит начать со статьи «AJAX in Plugins».

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Загрузка разных php скриптов без перезагрузки страницы» закрыта для новых ответов.