使用AJAX和PHP加载下一个POST对象

时间:2014-07-16 作者:colinmcp

在浏览了jQuery文档和许多stackexchange社区论坛之后,我仍然面临这个问题。从这里和那里吸取一些经验帮助我走到了这一步,但我被困在了现在的位置上。

Im使用ajax请求尝试加载当前显示的帖子之后的下一篇帖子。我遇到的唯一问题是,当我尝试执行php文件中包含的方法时:

<?php

echo getnext();

function getnext(){


$post = get_post($_POST[\'id\']);

$prevPost = get_previous_post();

return $prevPost->post_content;



}
?>
我可以很好地回显正在传递的POST变量,但一旦我尝试实际调用该方法,就会得到一个500内部服务器错误。

我的AJAX请求如下所示:

      setTimeout(function (){

$currid = $(\'#post_id\').val();

$.post("wp-content/themes/stargazer/populate.php",
            {
                "id":$currid
            },
            function(data){
                //$("#academiccontent").html(data);
                alert (data);
            });

$(\'#academiccontent\').animate({ \'opacity\': 1 });

 }, 1000);
任何帮助都将不胜感激,我已经在这方面坚持了很长一段时间了。

谢谢

1 个回复
SO网友:stoopkid1

无法使用您试图传递到的URL(wp-content/themes/stargazer/populate.php)

正如@Milo指出的,请检查AJAX Codex, 它将解释“ajaxurl”的用法,这是一个受保护的变量。

简而言之,所有AJAX请求都必须通过“admin AJAX”传递。php“无论是用于前端还是后端。

结束

相关推荐

Stop duplicate posts

我有三个循环,我想阻止他们在每个循环中显示相同的帖子。任何帮助都将不胜感激<?php $i; $args = array( \'numberposts\' => 8); $posts= get_posts( $args ); if ($posts) { foreach ( $posts as $i => $post ) { setup_postdata($post);