如何修复jqueryajax不向PHP文件发送数据的问题

如何修复jqueryajax不向PHP文件发送数据的问题,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试建立一个类似于喜欢/不喜欢系统的系统。我已经全部设置好了,但是我的jquery.ajax函数没有发送我需要的数据。正在调用函数,但未设置数据 我添加了一个函数来检查isset if语句是否被调用,但该函数没有被调用,因此我知道ajax函数有问题。我试过查看其他类似问题的帖子,但这些解决方案都不起作用。对不起,如果这只是我的愚蠢,解决办法很简单 PHP-community.PHP-主网页 <div id="entries"> <?php foreach($pos

我正在尝试建立一个类似于喜欢/不喜欢系统的系统。我已经全部设置好了,但是我的jquery.ajax函数没有发送我需要的数据。正在调用函数,但未设置数据

我添加了一个函数来检查isset if语句是否被调用,但该函数没有被调用,因此我知道ajax函数有问题。我试过查看其他类似问题的帖子,但这些解决方案都不起作用。对不起,如果这只是我的愚蠢,解决办法很简单

PHP-community.PHP-主网页

<div id="entries">
    <?php foreach($posts as $post): ?>
    <div class="entry">
      <div class="entryInfo">
        <img src="IMAGES/PlaceholderAlbumCover.jpg" alt="Album Cover" class="center" height="200" width="200">
        <div class="artistInfo">
          <h4><?php echo $post['name'] ?></h4>
          <p> <?php echo $post['artist'] ?> </p>
        </div>
        <div class="votes">

          <i <?php if(userVoted($post['id'])): ?>
              class="fas fa-heart vote-btn"
            <?php else: ?>
              class="far fa-heart vote-btn"
            <?php endif ?>
            data-id="<?php echo $post['id'] ?>" style="color:#f44242">
          </i>

          <span class="voteCount"><?php echo getVotes($post['id']); ?></span>
        </div>
      </div>
    </div>
    <?php endforeach ?>

  </div>
PHP-vote.PHP-处理系统的服务器端

if(isset($_POST['action'])) {
    consoleLog();

    $post_id = $_POST['id'];
    $action = $_POST['action'];

    switch($action) {
      case 'vote':
        $query="INSERT INTO rating_info (user_id, post_id, rating_action)
                VALUES ($user_id, $post_id, 'vote')
                ON DUPLICATE KEY UPDATE rating_action='vote'";
        break;
      case 'unvote':
        $query="DELETE FROM rating_info WHERE user_id=$user_id AND post_id=$post_id";
        break;
      default:
        break;
    }

    mysqli_query($dbconnect, $query);
    echo getRating($post_id);
    exit(0);
  }

它应该做的是通过将操作设置为vote或unnote来增加或减少mysql数据库中的投票计数,但js文件从不设置操作数据,或者PHP脚本永远无法捕获它。

您在javascript中以
post\u id
的形式传递post数据,但试图在PHP脚本中以
$\u post['id']的形式检索它。


改为这样做:
$\u POST['POST\u id']

您在哪里调用函数来运行从javascript调用的ajaxI函数,只需使用jquery即可{'methodI更改了它,但是没有发生任何可见的更改。如果if语句实际执行,那么可能会给我一个错误,这样以后就避免了这个错误,但主要问题仍然存在。您确定调用的是php文件吗?确认这是您在ajax调用中指定的正确路由看起来很有效。谢谢。我应该能把其他的事情都弄清楚。
if(isset($_POST['action'])) {
    consoleLog();

    $post_id = $_POST['id'];
    $action = $_POST['action'];

    switch($action) {
      case 'vote':
        $query="INSERT INTO rating_info (user_id, post_id, rating_action)
                VALUES ($user_id, $post_id, 'vote')
                ON DUPLICATE KEY UPDATE rating_action='vote'";
        break;
      case 'unvote':
        $query="DELETE FROM rating_info WHERE user_id=$user_id AND post_id=$post_id";
        break;
      default:
        break;
    }

    mysqli_query($dbconnect, $query);
    echo getRating($post_id);
    exit(0);
  }