JQuery $ _POST不能使用WordPress

时间:2018-06-14 04:37:52

标签: php jquery ajax wordpress

这是我第一次使用JQuery,而且我已经坚持了好几个小时了。

我试图制作喜欢和不喜欢的按钮,就像你在视频下在youtube上看到的按钮一样。在单击like按钮后,我正在使用$ _POST方法在我的数据库中的likes表中添加一个新行。但是有些不对劲。我试图跟踪问题,我知道由于某种原因,$ _POST方法无法运行“backgound.php”文件。

以下是我的代码。

<script  type="text/javascript">

    var user_liked = '<?php echo $user_liked; ?>';
    $(document).ready(function(){
      $("#li").click(function(){

        if(user_liked == '0') {
          $.post('<?php get_sport_you("backgound.php"); ?>' , {handle_like: 'increment'});
          user_liked = 1;
        } else {
          $.post('<?php get_sport_you("backgound.php"); ?>' , {handle_like: 'decrement'});
          user_liked = 0;
        }

      });
    });

  </script>

这就是backgound.php

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST') {

  if($_POST['handle_like'] === "increment") {
    submit_increment("user_likes", the_ID(), $_SESSION['u_id']);

  } else if($_POST['handle_like'] === "decrement"){
    submit_decrement("user_likes", the_ID(), $_SESSION['u_id']);
  }
}
 ?>

1 个答案:

答案 0 :(得分:0)

谢谢大家的帮助。经过大量的努力,我能够解决问题。好吧,实际上这更像是一个WordPress问题,而不是一个jquery问题。

$.post('<?php get_sport_you("backgound.php"); ?>' , {handle_like: 'decrement'});

问题在于上面的陈述,它解释了这一点。

$.post('localhost/wordpress/wp-content/themes/sportyou/backgound.php' , {handle_like: 'decrement'});

在WordPress中,您无法直接调用PHP文件,首先必须先创建页面模板,然后再从中创建页面。然后你可以发一个帖子请求。这背后的原因是,如果我直接调用PHP文件,许多预定义的WordPress函数将无法正常工作。例如add_action(),全局$ wpdb,你会得到各种错误。这些函数和对象不起作用,这就是为什么我无法使用$ wpdb对象将数据插入表中的原因。以下是正确的版本。

$.post('http://localhost/mysite/background/' , {handle_like: 'decrement'});