Ответы в темах

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Пробовал еще так (в идеале должен сохраняться xls-файл):

    require_once ‘PHPExcel.php’;

    $objXLS = new PHPExcel();
    $objXLS->setActiveSheetIndex(0);

    header(«Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet»);
    header(«Content-Disposition: attachment; filename=\»results.xls\»»);
    header(«Cache-Control: max-age=0»);

    $objWriter = PHPExcel_IOFactory::createWriter($objXLS, ‘Excel5’);
    $objWriter->save(«php://output»);
    //$objWriter->save(«test1.xls»);

    exit;

    Если раскомментировать последнюю строку $objWriter->save(«test1.xls»); то файл на сервере создается. Но диалог сохранения файла в браузере ни в какую не хочет отображаться.

    Автор Action2013

    (@action2013)

    Огромное спасибо вам за помощь. Теперь ситуация с ajax прояснилась.

    Автор Action2013

    (@action2013)

    svg, спасибо получилось найти причину. Я хотел, чтобы файл search.php подключался только когда сработает определенная мной функция:

    То есть, я создал отдельный файл с функциями для модуля поиска, а из главного файла плагина вызывал:

    function wp_my_search(){
      require_once('/modules/search.php');
    }
    add_shortcode('my_search', 'wp_my_search');

    Файл search.php и все что в нем вызывался один раз. А потом когда нужно было вызвать функцию через ajax которая находится в нем, WordPress ее просто не находил. Получается так нельзя делать?
    Получается, файл search.php со всеми функциями нужно инклудить даже когда эти функции не нужны?

    Автор Action2013

    (@action2013)

    svg, да, не работает. Но я подозреваю что я неправильно расположил файлы, или прописал include. Сейчас еще раз все с нуля повторю и проверю.

    Автор Action2013

    (@action2013)

    svg, пробовал оба варианта — не получается. Не пойму, что я не так делаю. Уже больше десятка примеров перепробовал — ну никак не хочет работать. ВОзможно дело в неправильном расположении моих файлов. Вы не могли бы приложить zip-архив с файалми плагина, который 100% работает?

    Автор Action2013

    (@action2013)

    Спасибо за ответ!

    http://codex.wordpress.org/AJAX_in_Plugins

    Это конечно же тоже смотрел. Но там преймущественно раскрыто использование AJAX в админпанели.

    Если конкретней, то что у меня есть на данный момент:
    В главном файле плагина пишу:

    add_shortcode('my_search', 'wp_my_search');
    function wp_my_search()
    {
        require_once('search.php');
    }

    То есть на страницах, где будет встречаться [my_search] будет вызываться код из search.php

    Далее в search.php пишу:

    <?php
    
    wp_enqueue_script('inkthemes', plugins_url( '/search.js' , __FILE__ ) , array( 'jquery' ));
    wp_localize_script( 'inkthemes', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php')));
    
    function get_test_count()
    {
        global $wpdb;
        $test_count = $wpdb->get_var(
            "SELECT COUNT(*) FROM $wpdb->options;"
        );
        die($test_count);
    }
    add_action('wp_ajax_get_test_count', 'get_test_count');
    add_action('wp_ajax_nopriv_get_test_count', 'get_test_count');
    
    ?>
    
    <input type="button" value="search_btn1" name="search_btn1" id="search_btn1"/>

    и search.js:

    jQuery(document).ready(function()
    {
        jQuery("#search_btn1").click(function()
        {
            jQuery.ajax({
                type: 'POST',
                url: MyAjax.ajaxurl,
                data: {"action": "get_test_count"},
                success: function(data){
                    alert(data);
                }
            });
        });
    });

    В результате я получаю alert с текстом 0.
    Такую структуру файлов пытаюсь наперед сделать, чтобы не писать все в одном файле, т.к. функций и модулей много. Может быть еще в этом что-то не так.

Просмотр 6 ответов — с 1 по 6 (всего 6)