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