AJAX和指向php页面的路径有问题

时间:2011-05-31 作者:Paul_p

我想从Ajax方法调用php页面:警报工作正常,代码也在wordpress之外经过测试,但这里似乎从未调用过php页面。

我找到了一些文章,其中包括:How to manage ajax calls and JSON in 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\';

        ?>
谢谢你的帮助

2 个回复
SO网友:Chris_O

要使用WordPress ajax url,可以使用wp\\u localize\\u脚本传递var:

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\' ) ) );
在您的功能中。js公司

        $.ajax({
                type: "POST",
                url:  MyAjax.ajaxurl,
                data: {p:alt_p},
                success: function(data) {
                    alert(data);
                }
            });

SO网友:Rarst

直接调用PHP文件是实现Ajax的更通用的方法,不应在WordPress中使用。

看见Ajax in Plugins in Codex 然后试着慢慢地通过这些例子。是的,如果您在WP方面不是很有经验,那么这不是最简单的事情,但这就是Ajax应该如何在其中完成的。

结束