paulp
  • 0
Новичок

Проблема с ajax и путем к php странице

  • 0

я хотел бы вызвать php-страницу из метода Ajax: оповещение работает нормально, код также был протестирован за пределами WordPress, но здесь кажется, что php-страница никогда не вызывается.

Я нашел несколько статей, среди них: Как управлять вызовами ajax и JSON в WordPress, но я больше запутался. Не могли бы вы сказать мне, что я должен делать здесь? (с «diapo.php» не работает и так тоже)

вот вызов с jquery:

        $('.sous-cat').find('img').click(function(){
                var alt_p = $(this).attr('alt');
                //alert(alt_p);

                $.ajax({
                    type: "POST",
                    url: "<?php bloginfo( 'template_directory' ) ?>/diapo.php",
                    data: {p:alt_p},
                    success: function(data) {
                        alert(data);
                    }
                });
                return false;
        });

и страница php на данный момент:

        <?php
        /*
        $p = $_POST['p'];
        query_posts( 'cat=3&p=$p' );
        while (have_posts()) : the_post();
            $result = the_post_thumbnail('normal');
        endwhile;
        wp_reset_query();*/

        echo '$result';

        ?>

Спасибо за вашу помощь

Share
  1. Если вы не используете PHP для вывода своего JS, ваш JS не будет выполнять jack, поскольку у него нет полного URL-адреса. Жестко закодируйте URL-адрес и посмотрите, работает ли это.

    • 0
    • Спасибо, обычно третий параметр не является «данными» для отправки на php-страницу? вот мне кажется, что мы отправляем php в js? так вот, если я хочу написать ‘echo «my_string»‘, например, для возврата, как я могу это реализовать? создать плагин и использовать хук add_action(‘admin-ajax’,…)?

      • 0
    • Привет, спасибо, не могли бы вы немного помочь с этим? я уже написал путь к файлу js, который работает с другими вещами jquery, так что могу ли я пропустить в него весь код ajax? или мне написать это в моем конкретном «плагине» для ajax? Кроме того, я не очень понимаю пример кодекса: я не хочу ничего делать с областью «администратора», так как ajax будет показывать некоторые изображения на первой странице,… так что я действительно не понять код, с » if (is_admin) else { } «, не могли бы вы помочь мне с очень простым примером?

      • 0
    • @Paul_p да, вам нужно написать код для WP, чтобы реализовать в нем Ajax. Codex охватывает как интерфейсную, так и внутреннюю часть. К сожалению, Кодекс настолько прост, насколько это вообще возможно. Попробуйте просто скопировать-вставить и сделать так, чтобы примеры Кодекса работали для вас в первую очередь.

      • 0
  2. Чтобы использовать URL-адрес WordPress ajax, вы можете передать переменную с помощью wp_localize_script:

    wp_enqueue_script( 'functions', get_bloginfo( 'stylesheet_directory' ) . '/js/functions.js', array( 'jquery' ), false);
        wp_localize_script( 'functions', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
    

    В ваших functions.js

            $.ajax({
                    type: "POST",
                    url:  MyAjax.ajaxurl,
                    data: {p:alt_p},
                    success: function(data) {
                        alert(data);
                    }
                });
    
    • 0
  3. Прямой вызов PHP-файла является более общим способом реализации Ajax и не должен использоваться в WordPress.

    См. Ajax в разделе «Плагины» в Codex и попробуйте медленно проработать там примеры. Да, это не самая простая штука, если вы не очень опытны в WP, но именно так в ней и надо делать Ajax.

    • 0

Оставить ответ

You must login to add an answer.